You*_*sef 3 c# string datetime parsing
简单的问题,我有这个字符串:
string dateString = "7/12/2014 4:42:00 PM";
Run Code Online (Sandbox Code Playgroud)
这是一个日期字符串,它位于UTC时区.
我需要将它转换为日期,所以我正在做以下事情:
DateTimeOffset dateOffset;
DateTimeOffset.TryParse(dateString, out dateOffset);
DateTime date = dateOffset.UtcDateTime;
Run Code Online (Sandbox Code Playgroud)
问题:
当我解析字符串到目前为止,代码正在考虑dateString位于PC的本地时区(+3 GMT),而不是UTC时区.
所以,我正在以下的dateOffset = {7/12/2014 4:42:00 PM +03:00},因而date = {7/12/2014 1:42:00 PM}
我怎么能告诉他提供的日期字符串是UTC格式而不是本地时区格式?
谢谢
我怎么能告诉他提供的日期字符串是UTC格式而不是本地时区格式?
指定呼叫中的DateTimeStyles值AssumeUniversal.这告诉解析代码该做什么.例如:
// null here means the thread's current culture - adjust it accordingly.
if (DateTimeOffset.TryParse(dateString, null, DateTimeStyles.AssumeUniversal,
out dateOffset))
{
// Valid
}
Run Code Online (Sandbox Code Playgroud)
您应该始终使用结果TryParse来判断它是否已成功解析.
如果您了解格式和特定文化,我个人会使用DateTimeOffset.TryParseExact.(嗯,说实话,我会使用我的Noda Time项目开始,但这是另一回事.)
| 归档时间: |
|
| 查看次数: |
2432 次 |
| 最近记录: |