【问题标题】:Convert plain string without seperator to date with format 'dd.MM.yyyy HH:mm:ss.fff z'将不带分隔符的纯字符串转换为日期格式为 'dd.MM.yyyy HH:mm:ss.fff z'
【发布时间】:2020-04-16 13:50:27
【问题描述】:

我的string 表示日期时间"20181230183000000",我无法将它转换为DateTime

DateTimeOffset.ParseExact(DOCDate, "dd.MM.yyyy HH:mm:ss.fff z", CultureInfo.InvariantCulture

【问题讨论】:

  • "ddMMyyyyHHmmssfff" 如果初始字符串 没有 有任何 分隔符 所以模式应该这样做
  • 我们可以使用字符串格式的模式

标签: c# datetime-format


【解决方案1】:

嗯,实际的格式模式应该匹配:你当前的输入

 20181230183000000

意思

 yyyyMMddHHmmssfff

代表yearmonthdayhoursminutessecondsfractions 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

最后,如果你想表示DateTimeOffsetDateTime)以某种格式,使用ToString()方法:

  Console.Write(result.ToString("dd.MM.yyyy HH:mm:ss.fff' z'"));

【讨论】:

    【解决方案2】:

    你可以试试:

    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") always converts to DateTimeKind.Local

    【讨论】:

      猜你喜欢
      • 2012-01-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-28
      相关资源
      最近更新 更多