我有一个配置文件,要求以特定格式提供日期:
"StartDate": "2017-05-27"
此编号的用法如下:
DateTime startDate;
DateTime.TryParse(MyConfig.StartDate, out startDate);
我意识到当这个在不同时区的服务器上运行时,返回的DateTime可能不是UTC类型,因此对该DateTime的进一步操作,如Ticks或其他东西,可能导致时间可能变得偏斜。 / p>
DateTime startDate;
DateTime.TryParse("2017-05-27", out startDate);
if(startDate.Kind == DateTimeKind.Utc)
{
"Ohhh yeah".Dump();
}
else
{
"EH OH".Dump();
}
startDate.Dump();
如果我将字符串更改为"2017-05-27Z"
,则不会强制它为DateTimeKind.Utc
...因为它仍会输出" EH OH" 但有趣的是,startDate.Dump()
输出的时间确实改变了一个小时,但它的种类并没有改变:(。
如何强制将配置字符串正确解析为UTC DateTime? (不改变TryParse代码,我知道它有一个类型说明符) - 这可能是不可能的,但这就是问题......是吧:)