【问题标题】:Converting dates in msg file to match outlook local dates muddle转换 msg 文件中的日期以匹配 Outlook 本地日期混乱
【发布时间】:2016-06-21 14:03:59
【问题描述】:

我正在获取 MSG 文件并更改日期以匹配 Outlook 中的本地日期。 (在 Outlook 中打开邮件时的发送日期相同)。 但时间似乎关闭了 1 小时或数小时。我已经放弃了进一步调查的时间:- 我正在使用 Aspose 打开 msg 文件。 c#

1.msg 显示:2016 年展望 05/01/2011 00:46。格林威治标准时间

05/01/2011 00:46:07,种类 = Utc 时区偏移 = -08:00:00 实际 UTC 时间为 05/01/2011 00:46:07 消息日期到世界时 + 时区偏移:04/01/2011 16:46:07 时区偏移:-08:00:00 计算通用味精日期:04/01/2011 16:46:07 输出 04/01/2011 08:46 AM

2.msg 在 Outlook 2016 中显示 20/06/2016 16:25。格林威治标准时间

20/06/2016 16:25:23,种类 = 本地 时区偏移 = 02:00:00 实际 UTC 时间为 20/06/2016 15:25:23 消息日期到世界时 + 时区偏移:20/06/2016 17:25:23 时区偏移:02:00:00 计算通用味精日期:20/06/2016 17:25:23 输出 06/20/2016 07:25 PM

关于如何纠正此问题以显示与前景相同的任何想法?我看到有些时间是 UTC,有些是本地时间,有没有人知道的解决方案?

MailMessage msg = MailMessage.Load(inFile);

MemoryStream ms = new MemoryStream();

Console.WriteLine(msg.Date.ToString() + ", Kind = " + msg.Date.Kind);

Console.WriteLine("TimeZone offset = " + msg.TimeZoneOffset);
Console.WriteLine("Actual UTC Time is  " + msg.Date.ToUniversalTime().ToString());
Console.WriteLine("Message date to universal time + timezoneoffset: " + (msg.Date.ToUniversalTime() + 
msg.TimeZoneOffset).ToString());
Console.WriteLine("timezoneoffset: " + msg.TimeZoneOffset.ToString());

// do calculation.
TimeZone localZone = TimeZone.CurrentTimeZone;
TimeSpan ts = localZone.GetUtcOffset(msg.Date);
msg.Date = msg.Date + msg.TimeZoneOffset;

Console.WriteLine("calculated universal msg date: " +msg.Date.ToUniversalTime().ToString());


if (msg.Date.Second >= 30) // for rounding up to match outlook
{
// ... Days, hours, minutes, seconds, milliseconds.
TimeSpan span = new TimeSpan(0, 0, 0, 31, 0);
msg.Date = msg.Date + span;
}

MhtMessageFormatter mhtlFormat = new MhtMessageFormatter();
mhtlFormat.DateTimeFormat = "ddd MM/dd/yyyy hh:mm tt";
mhtlFormat.Format(msg);
MhtSaveOptions mhtSaveOptions = new MhtSaveOptions();
mhtSaveOptions.MhtFormatOptions = MhtFormatOptions.None;
mhtSaveOptions.MhtFormatOptions = mhtSaveOptions.MhtFormatOptions |     MhtFormatOptions.HideExtraPrintHeader;

谢谢, 李。

【问题讨论】:

    标签: time timezone aspose msg


    【解决方案1】:

    正如您在 Aspose.Email 论坛中的 thread 所提供的帮助,我们相信您的问题已经得到解答。如果您仍然发现任何问题或困惑,您可以在相应的线程中进一步询问。

    我与 Aspose 合作,担任开发人员宣传员。

    【讨论】:

      猜你喜欢
      • 2019-12-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-02
      • 1970-01-01
      • 1970-01-01
      • 2018-04-29
      相关资源
      最近更新 更多