我正在尝试将时间从UTC转换为手机的本地时间。为此,我使用以下内容:
if (progress.ActionDateTime.HasValue)
progress.ActionDateTime = TimeZoneInfo.ConvertTime(progress.ActionDateTime.Value, TimeZoneInfo.Local);
然而,转换发生后,时间仍然完全相同。这个方法在WP7中工作吗?
答案 0 :(得分:2)
DateTime不存储有关时区的信息。 According to the documentation,TimeZoneInfo.ConvertTime
将使用DateTime.Kind属性来确定如何转换时间:
由于您使用TimeZoneInfo.Local
作为第二个参数(指定目标时区),我假设您的DateTimeKind是Local或Unspecified。因此,您将本地日期转换为本地日期,这显然不起作用。
DateTime.ToLocalTime
也使用DateTimeKind。 According to the documentation:
基本上,虽然TimeZoneInfo.ConvertTime
认为DateTimeKind.Unspecified = Local,但DateTime.ToLocalTime
认为DateTimeKind.Unspecified = Utc。它解释了为什么后者有效,而前者没有。