iCal时区问题

时间:2016-05-16 13:36:41

标签: c# asp.net time icalendar dday

我正在尝试允许用户在ASP.Net中为他们的日历下载iCal,但我遇到了时区问题。

如果我在计算机上下载文件,则时间显示正确并且在正确的时间范围内。但是,当我尝试在手机上下载时,时区会切换到5小时后(即早上7点变为凌晨3点)。

有谁知道如何解决此问题/设置时区?

以下是代码:

    public class Entity
    {
        public string Name { get; set; }
        public byte? Value { get; set; }
    }

    static void SetNullableWithReflection()
    {
        // Build array as requested
        Dictionary<string, string> props = new Dictionary<string, string>();
        props.Add("Name", "First name");
        props.Add("Value", "1");

        // The entity
        Entity entity = new Entity();

        // For each property to assign with a value
        foreach (var item in props)
            entity.SetProperty(item.Key, item.Value);

        // Check result
        Debug.Assert(entity.Name == "First name");
        Debug.Assert(entity.Value == 1);
    }

1 个答案:

答案 0 :(得分:1)

如果不查看生成的实际iCalendar流很难说,但很可能是使用浮动时间生成DTSTART / DTEND(例如&#34; 20160517T070000&#34;)。 如果事件不再发生(没有RRULE),您要做的是将日期时间转换为UTC并使用&#34;日期与UTC时间&#34; https://tools.ietf.org/html/rfc5545#section-3.3.5中描述的格式 即类似于&#34; 20160517Txx0000Z&#34;

如果事件再次出现,则需要使用最后一个表格(带有当地时间和时区参考的日期)。