![](/img/trans.png)
[英]Convert string to date with format 'dd.MM.yyyy HH:mm:ss.fff z'
[英]Convert plain string without seperator to date with format 'dd.MM.yyyy HH:mm:ss.fff z'
我的日期时间string
表示是"20181230183000000"
,我无法将其转换为DateTime
:
DateTimeOffset.ParseExact(DOCDate, "dd.MM.yyyy HH:mm:ss.fff z", CultureInfo.InvariantCulture
好吧,实际格式和模式应该匹配:您当前的输入
20181230183000000
方法
yyyyMMddHHmmssfff
代表year
、 month
、 day
、 hours
、 minutes
、 seconds
、 seconds
fractions of second
全部带有前导零且没有任何分隔符
代码:
string DOCDate = "20181230183000000";
DateTimeOffset result = DateTimeOffset.ParseExact(
DOCDate,
"yyyyMMddHHmmssfff",
CultureInfo.InvariantCulture,
DateTimeStyles.AssumeUniversal); // Since you've mentioned 'z' in the question
我们来看一下
Console.Write(result.ToString(CultureInfo.InvariantCulture));
结果:
12/30/2018 18:30:00 +00:00
DateTime
类似代码:
DateTime result = DateTime.ParseExact(
DOCDate,
"yyyyMMddHHmmssfff",
CultureInfo.InvariantCulture,
DateTimeStyles.AssumeUniversal); // Since you've mentioned 'z' in the question
最后,如果您想以某种格式表示DateTimeOffset
( DateTime
),请使用ToString()
方法:
Console.Write(result.ToString("dd.MM.yyyy HH:mm:ss.fff' z'"));
你可以试试:
var dateTimeString = "20181230183000000";
DateTimeOffset dto;
if (DateTimeOffset.TryParseExact(dateTimeString, "yyyyMMddHHmmssfff",
CultureInfo.InvariantCulture,
DateTimeStyles.AssumeUniversal |
DateTimeStyles.AdjustToUniversal, out dto))
{
Console.WriteLine(dto);
}
这是一篇关于使用 DateTimeOffset、DateTime 而不是 TimeZoneInfo 的好帖子
DateTime.Parse("2012-09-30T23:00:00.0000000Z") 总是转换为 DateTimeKind.Local
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.