MS Outlook 日历文件中的 UTC 时间不正确
Incorrect UTC time in Calendar File for MS Outlook
在我的活动管理应用程序中,我创建了一个日历文件,该文件随注册确认电子邮件一起发送。该应用程序在 .NET 和 C# 中。我使用以下代码来获取时间。
sdate = row1.StartTime.ToUniversalTime().ToString("yyyyMMddThhmmssZ");
edate = row1.EndTime.ToUniversalTime().ToString("yyyyMMddThhmmssZ");
...
然后我将它添加到日历文件
contents.Add("DTSTART:" + sdate);
contents.Add("DTEND:" + edate);
但问题是,如果我的结束时间是当地时间 3:59 下午,那么它会正确转换。但是如果它在 4:00 PM 结束,那么结束时间就会不正确。
有人可以指导我吗?
请在下面找到 Outlook 日历条目和日历文件数据的屏幕。
正确输出
输出不正确
我终于找到了解决办法。它是如此简单,以至于我错过了它令人失望。
只是为了帮助别人。我只需要在转换为字符串时将大写 'H' 放在字符串格式中即可。所以正确的代码是
sdate = row1.StartTime.ToUniversalTime().ToString("yyyyMMddTHHmmssZ");
edate = row1.EndTime.ToUniversalTime().ToString("yyyyMMddTHHmmssZ");
在我的活动管理应用程序中,我创建了一个日历文件,该文件随注册确认电子邮件一起发送。该应用程序在 .NET 和 C# 中。我使用以下代码来获取时间。
sdate = row1.StartTime.ToUniversalTime().ToString("yyyyMMddThhmmssZ"); edate = row1.EndTime.ToUniversalTime().ToString("yyyyMMddThhmmssZ"); ...
然后我将它添加到日历文件
contents.Add("DTSTART:" + sdate); contents.Add("DTEND:" + edate);
但问题是,如果我的结束时间是当地时间 3:59 下午,那么它会正确转换。但是如果它在 4:00 PM 结束,那么结束时间就会不正确。
有人可以指导我吗?
请在下面找到 Outlook 日历条目和日历文件数据的屏幕。
正确输出
输出不正确
我终于找到了解决办法。它是如此简单,以至于我错过了它令人失望。
只是为了帮助别人。我只需要在转换为字符串时将大写 'H' 放在字符串格式中即可。所以正确的代码是
sdate = row1.StartTime.ToUniversalTime().ToString("yyyyMMddTHHmmssZ");
edate = row1.EndTime.ToUniversalTime().ToString("yyyyMMddTHHmmssZ");