使用Eastern Daylight解析日期时间字符串

时间:2018-09-14 02:21:17

标签: c# datetime

我的日期字符串为“ 2017-08-08T17:08:29 EDT -0400”。我们正在将Java App重写为C#。在Java中,通过将此日期解析为SimpleDateFormat(“ yyyy-MM-dd'T'HH:mm:ss z Z”),可以完成验证。但是在C#中,当我尝试将其解析为DateTime时,出现错误,因为这不是DateTime字符串。如何使用C#验证此日期?

谢谢

1 个答案:

答案 0 :(得分:1)

我有几点建议和问题:

  1. 什么是2017-08-08-08?
  2. 我将使用EDT或-0400,而不是全部使用,例如:

        var s = "2017-08-08T17:08:29 -0400";
        var format = "yyyy-MM-ddTHH:mm:ss zzz";
        CultureInfo provider = CultureInfo.InvariantCulture;
    
        var d = DateTime.ParseExact(s, format, provider);
    
        Console.WriteLine(d);
    
  3. 更好地使用NodaTime及其解析器。检出https://nodatime.org/2.4.x/userguide/offsetdatetime-patterns