我正在获取MSG文件并更改日期以匹配outlook中的本地日期。 (在Outlook中打开邮件时发送日期相同)。 但时间似乎是1小时或许多小时。我已经抛弃时间进一步调查: - 我正在使用Aspose打开msg文件。 C#
1.msg显示:2016年1月5日00:46在outlook 2016.GMT
05/01/2011 00:46:07,Kind = Utc TimeZone offset = -08:00:00 实际UTC时间是05/01/2011 00:46:07 消息日期为通用时间+ timezoneoffset:04/01/2011 16:46:07 timezoneoffset:-08:00:00 计算的通用消息日期:04/01/2011 16:46:07 输出04/01/2011 08:46 AM
2.msg显示2016年6月20日16:25在outlook 2016.GMT
20/06/2016 16:25:23,Kind = Local TimeZone offset = 02:00:00 实际UTC时间是20/06/2016 15:25:23 消息日期为通用时间+ timezoneoffset:20/06/2016 17:25:23 timezoneoffset:02:00:00 计算的通用消息日期:2016年6月20日17:25:23 输出06/20/2016 07:25 PM
关于如何纠正这个与outlook相同的任何想法?我看到有些时候是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;
谢谢, 李。
答案 0 :(得分:0)
在Aspose.Email论坛的thread上,我们相信您的查询已经得到了答案。如果您仍然发现任何问题或有疑惑,可以在相应的主题上进一步查询。
我与Aspose一起担任开发者布道者。