我正在尝试计算从 UTC 到特定时区的时间。我为此使用 ConvertTimeFromUtc 方法,方法是将指定的 UTC 时间和指定时区显示名称的 TimeZoneInfo 传递给它。这适用于多个时区,但是对于 -7,它使用以下(简化)参数计算 0:TimeZoneInfo timeZoneInfo = TimeZoneInfo.FindSystemTimeZoneById("US Mountain Standard Time");
TimeZoneInfo.ConvertTimeFromUtc(DateTime.Parse("01/01/0001 05:02:00"), timeZoneInfo)但是在进行计算后,它会显示为 {01/01/0001 00:00:00} 这很奇怪,因为它适用于明斯克等其他时区我错过了什么吗?
1 回答
千巷猫影
TA贡献1829条经验 获得超7个赞
嗯,你有 UTC-7,所以从 01/01/0001 05:02:00 你在 31/12/0000 22:02:00 (或 12/31/0000 遵循美国格式)
TimeZoneInfo.ConvertTimeFromUtc(DateTime.Parse("01/01/0001 05:02:00"), timeZoneInfo);
和 msdn 说:
DateTime 值类型表示日期和时间,其值范围从 00:00:00(午夜)、0001 年 1 月 1 日 Anno Domini(普通纪元)到 11:59:59 PM、9999 年 12 月 31 日(公历)日历。
所以 01/01/0001 00:00:00 是第一个可用的日期..
你没有错过任何东西,它只是 DateTime 的限制
对不起我的英语不好
- 1 回答
- 0 关注
- 299 浏览
添加回答
举报
0/150
提交
取消