Tag: rfc822

RFC-1123的DateTime给出了不准确的时区

如果我得到DateTime对象的RFC-1123格式化日期,它会给出当前的本地时间,但会给出时区为GMT(这是不准确的)。 DateTime.Now.ToString(“r”); 回报 Fri, 12 Feb 2010 16:23:03 GMT 下午4:23,但我的时区是UTC + 10(另外,我们目前正在观察夏令时)。 现在,我可以通过首先转换为UTC来获得“正确”的返回值: DateTime.UtcNow.ToString(“r”); 回报 Fri, 12 Feb 2010 05:23:03 GMT 但是,理想情况下,我想获得正确的时区,我想这将是 Fri, 12 Feb 2010 16:23:03 +1100 传入当前的CultureInfo并没有改变任何东西。 我可以使用TimeZoneInfo.Local.GetUtcOffset(…)获得UTC偏移量并从中格式化时区字符串,但是删除GMT位并替换它似乎是非常混乱。 有没有办法强制它包含正确的时区?

在.NETMF 4.0中解析RFC822-Datetime

我有一个用.NETMF编写的应用程序,它要求我能够解析RFC822-Datetime。 通常,这很容易,但NETMF没有DateTime.parse()方法,也没有某种模式匹配实现,所以我几乎被卡住了。 有任何想法吗? 编辑:可能需要“智能”解决方案。 这很困难的部分原因是所讨论的日期时间倾向于在其中有额外的空间(但有时只是)。 一个简单的子字符串解决方案可能会在某一天工作,但是当日期时间在某些部分之间有一个额外的空间时,它会失败。 我无法控制日期时间,它来自NOAA。

难倒C#DateTime ToString()格式化问题

我在C#中的DateTime对象上获取了一些ToString()调用返回的垃圾数据,我担心在用它调整一段时间后我会感到难过。 该函数应该格式化日期以符合RFC 822(根据RSS规范的要求),看起来像: public static string FormatPubDate(DateTime pubDate) { string _rfc822Format = “ddd, dd MMM yyyy HH:mm:ss”; string _tmp = pubDate.ToUniversalTime().ToString(_rfc822Format); return pubDate.ToString(_tmp + ” UT”); } 从我能读到的DateTime ToString()文档中,我应该是我想要的。 但是,对于某些日期,它会产生垃圾: Console.WriteLine(FormatPubDate(new DateTime(2008, 12, 16, 13, 44, 33))); Console.WriteLine(FormatPubDate(new DateTime(2008, 12, 17, 13, 44, 33))); Console.WriteLine(FormatPubDate(new DateTime(2009, 3, 18, 4, 17, 20))); Console.WriteLine(FormatPubDate(new DateTime(2009, 4, 30, […]

在.NET中序列化MailMessage对象的优雅方法

我目前正在考虑在C#中序列化一个MailMessage对象,尽管网上有一些示例的变体,但它们会序列化为二进制,这种点错过了IMO点。 我的方法是,我想将MailMessage序列化为RFC2822 eml字符串,下面的代码就是我提出的。 public string SerializeEmail(MailMessageArgs e) { string rfc822eml = “”; Guid g = Guid.NewGuid(); lock (g.ToString()) { System.IO.DirectoryInfo di = new System.IO.DirectoryInfo(@”C:\tmpspool”); di.CreateSubdirectory(g.ToString()); string spoolDir = @”C:\tmpspool\” + g.ToString(); SmtpClient Client = new SmtpClient(“localhost”); Client.DeliveryMethod = SmtpDeliveryMethod.SpecifiedPickupDirectory; Client.PickupDirectoryLocation = spoolDir; Client.Send(e.mailObj); var files = from file in Directory.EnumerateFiles(spoolDir) select file; string serializedEml = […]