将dateTime转换为ISO格式yyyy-mm-dd hh:mm:ss in C#

在.NET / C#中有一个标准的方法来将date时间对象转换为ISO 8601格式yyyy-mm-dd hh:mm:ss?

或者我需要做一些string操作来获取datestring?

可读的8601格式没有标准格式。 您可以使用自定义格式:

 theDate.ToString("yyyy-MM-dd HH':'mm':'ss") 

(标准格式“s”会给你一个date和时间之间的“T”,而不是一个空格。)

要使用严格的ISO8601 ,可以使用s (可sorting )格式string:

  myDate.ToString("s"); // example 2009-06-15T13:45:30 

这是这个自定义格式string的一个缩写:

 myDate.ToString("yyyy'-'MM'-'dd'T'HH':'mm':'ss"); 

当然,您可以构build自己的自定义格式string。

更多信息:

  • 标准date和时间格式string
  • 自定义date和时间格式string

添加一些让我困惑的信息; 我一直认为可以像这样取得相同的结果;

 theDate.ToString("yyyy-MM-dd HH:mm:ss") 

但是,如果您的当前文化不使用冒号(:)作为小时分隔符,而是使用全站(。),则可以按如下方式返回:

2009-06-15 13.45.30

只是想补充说明为什么答案需要保持原样;

 theDate.ToString("yyyy-MM-dd HH':'mm':'ss") 

🙂

 date.ToString("o") // The Round-trip ("O", "o") Format Specifier date.ToString("s") // The Sortable ("s") Format Specifier, conforming to ISO86801 

MSDN标准date和时间格式string

对于那些使用这种格式的人来说,所有的时间都和我一样,我做了一个扩展的方法。 我只是想分享一下,因为我认为这对你有用。

  /// <summary> /// Convert a date to a human readable ISO datetime format. ie. 2012-12-12 23:01:12 /// this method must be put in a static class. This will appear as an available function /// on every datetime objects if your static class namespace is declared. /// </summary> public static string ToIsoReadable(this DateTime dateTime) { return dateTime.ToString("yyyy-MM-dd HH':'mm':'ss"); } 

DateTime :: ToString()方法有一个string格式化程序,可用于以任何所需的格式输出date时间。 有关更多信息,请参见DateTime.ToString方法(string)