Asp.net outlook从ICal显示错误的时间

Asp.net outlook从ICal显示错误的时间,asp.net,outlook,icalendar,Asp.net,Outlook,Icalendar,我遇到了一个奇怪的问题。我正在通过razor代码创建一个ICal文件,当我从wesbite下载ICal时,它显示了错误的时间 然而,当我用记事本打开它时,打印机就在那里。 为了详细描述这一点,我将制作一个样本。 Ical在记事本中打开 BEGIN:VCALENDAR PRODID:-//Google Inc//Google Calendar 70.9054//EN VERSION:2.0 CALSCALE:GREGORIAN METHOD:REQUEST BEGIN:VEVENT DTSTART

我遇到了一个奇怪的问题。我正在通过razor代码创建一个ICal文件,当我从wesbite下载ICal时,它显示了错误的时间

然而,当我用记事本打开它时,打印机就在那里。 为了详细描述这一点,我将制作一个样本。 Ical在记事本中打开

BEGIN:VCALENDAR
PRODID:-//Google Inc//Google Calendar 70.9054//EN
VERSION:2.0
CALSCALE:GREGORIAN
METHOD:REQUEST
BEGIN:VEVENT
DTSTART:20130107T150000Z
DTEND:20130107T170000Z
DTSTAMP:20130107T131549Z
ORGANIZER;CN=it@rk.com:mailto:it@rk.com
UID:u20vfrto8rfd9cscp52sn9o@google.com
ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;CN=;X-NUM-GUESTS=0:mailto:
DESCRIPTION: INGBOARD IS IN ENGLISH.\n\nLand: Denmark\n
LOCATION:
STATUS:
SUMMARY:US Company
END:VEVENT
END:VCALENDAR
在此时间内,正确的开始时间为15.00,结束时间为17.00

当我在Outlook中打开它时,它显示开始时间为晚上8:30,结束时间为晚上10:30,这是错误的


如何修复它?

开始和结束时间以UTC明确指定(由于后面的Z)。如果Outlook在本地时间显示它们,这就可以解释差异。听起来Outlook位于印度时区(目前为UTC+05:30)


您可能希望指定本地开始/结束时间,并单独指定事件的时区。(如果不指定时区,它将不会在特定的时间点开始,这对于大多数事件来说都是不寻常的。)

@AKS:那么事件实际上是什么时候开始的?当地时间15:00,还是协调世界时15:00?如果要在格式字符串中包含
Z
,则
DateTime
值最好以UTC开始…这就是我如何将时间添加到ical(DateTime)course.CourseEndDate).ToString(“yyyyMMddTHHmmssZ”)中的方法您是否可以提出任何更改建议,以便我可以将此utc设置更改为utc+01:00。thanks@AKS:删除以前的评论并添加类似的评论并没有真正的帮助。为什么要UTC+1?这听起来根本不合适……我需要活动在UTC+01:00(丹麦时间)开始。我是否需要使用代码在每次时间上增加+1小时,或者是否有任何快速修复方法将utc更改为丹麦时区,例如删除“z”并添加其他内容。您的困惑是有原因的,我正在从印度开发一个丹麦网站。@AKS:在这种情况下,最好使用
DateTimeOffset
而不是
DateTime
。或者,将本地时间(no Z)和时区输出为DTZONE。