我试图从ASP.NET网站发送Outlook预约.我已经找到了发送该代码在这里,并试图实现它.但由于某些未知原因,它无法正常工作.
我运行代码的服务器位于美国/中部时区.我想把这个约会寄给在伦敦的客户.所以这里有一个夏令时问题,需要解决.
关于组成约会的字符串,我没有找到任何可理解的解释.我认为时区问题可以通过TZOFFSETFROM和解决TZOFFSETTO,但由于我不知道这些事情是如何工作的,我无法理解该怎么做.
有人可以用简单的英语解释这些事情吗?
编辑
以下是用于计算时区的字符串部分 -
string timezone = "BEGIN:VTIMEZONE"
+ "\r\n" + "TZID:US/Central"
+ "\r\n" + "X-MICROSOFT-CDO-TZID:11"
+ "\r\n" + "BEGIN:STANDARD"
+ "\r\n" + "DTSTART:16010101T020000"
+ "\r\n" + "TZOFFSETFROM:-0500"
+ "\r\n" + "TZOFFSETTO:-0600"
+ "\r\n" + "RRULE:FREQ=YEARLY;WKST=MO;INTERVAL=1;BYMONTH=11;BYDAY=1SU"
+ "\r\n" + "END:STANDARD"
+ "\r\n" + "BEGIN:DAYLIGHT"
+ "\r\n" + "DTSTART:16010101T020000"
+ "\r\n" + "TZOFFSETFROM:-0600"
+ "\r\n" + "TZOFFSETTO:-0500"
+ "\r\n" + "RRULE:FREQ=YEARLY;WKST=MO;INTERVAL=1;BYMONTH=3;BYDAY=2SU"
+ "\r\n" + "END:DAYLIGHT"
+ "\r\n" + "END:VTIMEZONE";
Run Code Online (Sandbox Code Playgroud)
这里有两个属性(我不完全知道它们的类型名称,所以我使用"属性"来指向它们.我的道歉)在两个地方使用,先后BEGIN:STANDARD和后BEGIN:DAYLIGHT.为什么?如果我DTSTART;TZID=US/Central:20101006T100000Z在BEGIN:VEVENT块中指定开始日期,那么它在伦敦的客户展望时间会显示什么时间?
第二次编辑
确定,我现在明白这VTIMEZONE定义了一个特定的时区.指定时区后,我需要在该VEVENT部分中指定日历的时间,即DTSTART;TZID=US/Central:20100101T100000.现在应该是当前时间吗?我的意思是,在指定时间时我应该考虑夏令时,还是从当前时区获取当前时间并在那里使用它?
第三编辑
我应该在下一个块中指定什么时间 -
string event = "BEGIN:VEVENT"
+ "\r\n" + "DTSTAMP:{8}"
+ "\r\n" + "DTSTART;TZID=US/Central:{0}" // What time should I specify here?
+ "\r\n" + "SUMMARY:{7}"
.................
Run Code Online (Sandbox Code Playgroud)
我应该在指定时考虑夏令时DTSTART,还是应该总是指定标准时间,它会自动调整为夏令时?
| 归档时间: |
|
| 查看次数: |
8683 次 |
| 最近记录: |