我有一个这种格式的字符串:"20111027",即一般格式:"yyyyMMdd".
如何将其转换为具有GMT时区的DateTime ?
此代码进行了一些转换,但不清楚将使用哪个时区:
DateTime date = DateTime.ParseExact(dateString, "yyyyMMdd",
CultureInfo.InvariantCulture);
Run Code Online (Sandbox Code Playgroud)
从文档:
如果s不表示特定时区的时间并且解析操作成功,则返回的DateTime值的Kind属性为
DateTimeKind.Unspecified.
您可以更改Kind使用DateTime.SpecifyKind:
date = DateTime.SpecifyKind(date, DateTimeKind.Utc);
Run Code Online (Sandbox Code Playgroud)
使用DateTimeStyles的AssumeUniversal:
DateTime date = DateTime.ParseExact(dateString, "yyyyMMdd",
CultureInfo.InvariantCulture,
DateTimeStyles.AssumeUniversal);
Run Code Online (Sandbox Code Playgroud)
来自以下文件DateTimeStyles.AssumeUniversal:
如果在解析的字符串中未指定时区,则假定该字符串表示UTC.
听起来就像你想要的:)
(或者你可以使用Noda Time并将其解析为a LocalDate.它只代表一个日期,毕竟,为什么要使用一个关心时间和时区的类型?:)
| 归档时间: |
|
| 查看次数: |
408 次 |
| 最近记录: |