将字符串转换为日期,格式为“ dd.MM.yyyy HH:mm:ss.fff z”

时间:2018-12-31 06:24:56

标签: c#

我的日期字符串是“ 2018-12-30T18:30:00.000Z”,我无法将其转换为日期时间。

我尝试过

root@d0b0e44f7517:/# mkdir /var/run/sshd
root@d0b0e44f7517:/# chmod 0755 /var/run/sshd
root@d0b0e44f7517:/# /usr/sbin/sshd    
root@d0b0e44f7517:/#
root@d0b0e44f7517:/# useradd --create-home --shell /bin/bash --groups sudo u2  
root@d0b0e44f7517:/# passwd u2
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
root@d0b0e44f7517:/#
root@d0b0e44f7517:/#

6 个答案:

答案 0 :(得分:2)

您的代码现在可以工作的原因是,字符串中的日期为yyyy-MM-ddTHH:mm:ss.fffZ格式,而您指定给ParseExact的格式为dd.MM.yyyy HH:mm:ss.fff z。这样就无法解析日期。

答案 1 :(得分:0)

DateTimeOffset.Parse("2018-12-30T18:30:00.000Z");似乎可以正常工作。

答案 2 :(得分:0)

  string s="2018-12-30T18:30:00.000Z";
   DateTime da=     DateTime.ParseExact(s, "yyyy-MM-ddTHH:mm:ss.fffZ", CultureInfo.InvariantCulture);
   Response.Write(da.ToString());

尝试一下

答案 3 :(得分:0)

您可以将DateTime.TryParseDateTimeStyles.AdjustToUniversal一起使用,以使用完全相同的时间,也可以将DateTimeStyles.AssumeUniversal调整为本地时间:

 bool result = DateTime.TryParse("2018-12-30T18:30:00.000Z", CultureInfo.CurrentCulture, 
                                 DateTimeStyles.AdjustToUniversal, out DateTime dt);

=> 12/30/2018 18:30:00 or 30/12/2018 18:30:00 (...)

 bool result = DateTime.TryParse("2018-12-30T18:30:00.000Z", CultureInfo.CurrentCulture, 
                                 DateTimeStyles.AssumeUniversal, out DateTime dt);

=> 30/12/2018 [Adjusted to your Local time] (...)

答案 4 :(得分:0)

这将为您提供所需格式的字符串

(DateTime.Parse(“ 2018-12-30T18:30:00.000Z”))。ToString(“ dd.MM.yyyy HH:mm:ss.fff z”);

答案 5 :(得分:0)

string dateString="2018-12-30T18:30:00.000z";
Console.WriteLine(DateTimeOffset.Parse(dateString));

在下面的图像中查看的输出 enter image description here