【发布时间】:2020-06-04 19:17:09
【问题描述】:
在我的活动管理应用程序中,我创建了一个日历文件,该文件与注册确认电子邮件一起发送。该应用程序位于带有 C# 的 .NET 中。我使用以下代码来获取时间。
sdate = row1.StartTime.ToUniversalTime().ToString("yyyyMMddThhmmssZ"); edate = row1.EndTime.ToUniversalTime().ToString("yyyyMMddThhmmssZ"); ...然后我将它添加到日历文件中
内容.Add("DTSTART:" + sdate); contents.Add("DTEND:" + edate);但问题是,如果我的结束时间是当地时间下午 3:59,那么它会正确转换。但如果它在下午 4:00 结束,那么结束时间就会不正确。
有人可以指导我吗?
请在 Outlook 日历条目和日历文件数据的屏幕下方找到。
【问题讨论】:
-
我认为代码运行正常。您忘记了日期在不同时间更改。从您发布的消息来看,我猜您在 PST(太平洋标准时间 -8),UTC 日期将在下午 4:00 更改。
-
我添加了更多信息。
-
问题不在于发布的代码。问题在于第 1 行中的数据。您的所有代码都在从 row1 获取数据。将数据放入第一行的代码应该只获得一次时间。所以你应该做这样的事情:DateTime now = Date.Now。 StartTime = now, EndTime = now.AddHours(3);不是 StartTime = DateTime.Now; EndTime = DateTime.Now.AddHours(3);第二个代码调用 DateTime.Now 两次。
-
row1 正在从数据库中获取数据,首先,我得到了事件的开始时间,然后我得到了事件的结束时间。那么你是说我减去开始时间和结束时间,然后计算日历文件的结束时间?我会尝试你的建议并会更新
-
数据库错误。不是你的显示方式。