我有一个格式为“20111027”的字符串,即通用格式:“yyyyMMdd”。将字符串“20111027”转换为GMT时区的DateTime
我该如何将其转换为具有时区GMT的DateTime?
此代码做一些转换,但目前还不清楚会使用什么时区:
DateTime date = DateTime.ParseExact(dateString, "yyyyMMdd",
CultureInfo.InvariantCulture);
我有一个格式为“20111027”的字符串,即通用格式:“yyyyMMdd”。将字符串“20111027”转换为GMT时区的DateTime
我该如何将其转换为具有时区GMT的DateTime?
此代码做一些转换,但目前还不清楚会使用什么时区:
DateTime date = DateTime.ParseExact(dateString, "yyyyMMdd",
CultureInfo.InvariantCulture);
使用DateTimeStyles
AssumeUniversal
的:
DateTime date = DateTime.ParseExact(dateString, "yyyyMMdd",
CultureInfo.InvariantCulture,
DateTimeStyles.AssumeUniversal);
从docs of DateTimeStyles.AssumeUniversal
:
如果没有指定时区在t他解析了字符串,该字符串被假定为表示UTC。
听起来像是你想要什么:)
(或者你可以使用Noda Time和其解析到LocalDate
,只表示日期,毕竟,所以为什么要用这样一种类型,关心倍,时区?:)
如果s没有在特定的时间段和代表时间解析操作成功,返回的DateTime值的Kind属性为
DateTimeKind.Unspecified
。
您可以Kind
使用DateTime.SpecifyKind
改变:
date = DateTime.SpecifyKind(date, DateTimeKind.Utc);