转换字符串“20111027"”到时区为GMT的DateTime
本文关键字:时区 GMT DateTime 字符串 20111027 quot 转换 | 更新日期: 2023-09-27 18:12:31
我有一个这样格式的字符串:"20111027",即一般格式:"yyyyMMdd"。
如何将其转换为具有时区GMT的DateTime ?
这段代码做了一些转换,但不清楚将使用哪个时区:
DateTime date = DateTime.ParseExact(dateString, "yyyyMMdd",
CultureInfo.InvariantCulture);
使用AssumeUniversal
的DateTimeStyles
:
DateTime date = DateTime.ParseExact(dateString, "yyyyMMdd",
CultureInfo.InvariantCulture,
DateTimeStyles.AssumeUniversal);
From docs of DateTimeStyles.AssumeUniversal
:
如果解析的字符串中没有指定时区,则假定该字符串表示UTC。
听起来正是你想要的:)
(或者您可以使用Noda Time并将其解析为LocalDate
。毕竟,它只表示一个日期,那么为什么要使用关心时间和时区的类型呢?:)
来自文档:
如果s不表示特定时区的时间,并且解析操作成功,则返回的DateTime值的Kind属性为
DateTimeKind.Unspecified
。
您可以使用DateTime.SpecifyKind
:
Kind
date = DateTime.SpecifyKind(date, DateTimeKind.Utc);