【问题标题】:Converting string date into specific date time format将字符串日期转换为特定的日期时间格式
【发布时间】:2018-06-30 17:38:56
【问题描述】:

我有一个日期时间格式的字符串,如下所示:

开始日期:

2018/06/30 23:00

和结束日期:

2018/07/01 19:32

现在我想把这个字符串转换成这样的格式:

2017-02-11T19:58:18.918Z

开始和结束日期都应该是这个日期 - 字符串格式

我尝试过这样的事情:

   var properStart = DateTimeOffset.ParseExact(startdate, "yyyy-MM-dd'T'HH:mm:sszzz",
                                                       CultureInfo.InvariantCulture).ToString();
   var properEnd = DateTimeOffset.ParseExact(enddate, "yyyy-MM-dd'T'HH:mm:sszzz",
                                                CultureInfo.InvariantCulture).ToString();

但这给了我如下错误:

Additional information: String was not recognized as a valid DateTime.

我在这里做错了什么?

【问题讨论】:

    标签: c# asp.net string datetime


    【解决方案1】:

    你正在尝试解析这个字符串:

    "2018/06/30 23:00"
    

    指定此格式:

    "yyyy-MM-dd'T'HH:mm:sszzz"
    

    该格式与该字符串不匹配,因此解析失败。从输入的格式解析:

    var properStart = DateTimeOffset.ParseExact(startdate, "yyyy/MM/dd HH:mm",
                                                       CultureInfo.InvariantCulture)
    

    然后输出成你想要的格式:

    var properStartOutput = properStart.ToString("yyyy-MM-dd'T'HH:mm:sszzz");
    

    或者,如果你真的想要一行代码:

    var properStart = DateTimeOffset.ParseExact(startdate, "yyyy/MM/dd HH:mm",
                                                       CultureInfo.InvariantCulture).ToString("yyyy-MM-dd'T'HH:mm:sszzz").
    

    重点是解析输入格式化输出是两个不同的操作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-30
      • 1970-01-01
      • 1970-01-01
      • 2014-08-10
      • 1970-01-01
      相关资源
      最近更新 更多