我正在尝试允许用户在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);
}
答案 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;
如果事件再次出现,则需要使用最后一个表格(带有当地时间和时区参考的日期)。