![](/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.