【发布时间】:2013-01-20 11:10:00
【问题描述】:
如标题。我想在我的计时器中添加一个时区。 我试试这个:
int G = DateTime.Now.Kind;
但它会抛出一个错误。 如何在 winforms 中查看时区?
【问题讨论】:
如标题。我想在我的计时器中添加一个时区。 我试试这个:
int G = DateTime.Now.Kind;
但它会抛出一个错误。 如何在 winforms 中查看时区?
【问题讨论】:
您的代码不起作用,因为 DateTime.Now.Kind 返回一个 DateTimeKind 这是一个枚举,您必须将其显式转换为 int:
int G = (int)DateTime.Now.Kind;
或:
DateTimeKind G = DateTime.Now.Kind;
但正如其他人所说,它不会返回时区。你应该使用:
TimeZone timeZone = TimeZone.CurrentTimeZone;
【讨论】:
实际上,DateTime 不包含实时时区信息。
尝试使用TimeZone.CurrentTimeZone 属性代替。
获取当前计算机的时区。
这是DEMO。
另外,如果您真的对 .NET Framework 中的时区感兴趣,那么您真的应该阅读Coding Best Practices Using DateTime in the .NET Framework,我认为这是一篇很棒的文章。
【讨论】:
DateTime.Kind 与时区无关。它是显示日期类型的枚举:Local, UTC,Uncpecified。
【讨论】: