为了账号安全,请及时绑定邮箱和手机立即绑定

ConvertTimeFromUtc 为 (UTC-07:00) 亚利桑那州计算 00:00:00

ConvertTimeFromUtc 为 (UTC-07:00) 亚利桑那州计算 00:00:00

C#
守着星空守着你 2022-01-09 16:12:47
我正在尝试计算从 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 的限制

对不起我的英语不好


查看完整回答
反对 回复 2022-01-09
  • 1 回答
  • 0 关注
  • 299 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信