【发布时间】:2010-12-27 03:22:47
【问题描述】:
【问题讨论】:
-
这不是 ISO 格式。你错过了
T(和可选的 - 时区)
【问题讨论】:
T(和可选的 - 时区)
要使用严格的ISO8601,可以使用s(Sortable)格式字符串:
myDate.ToString("s"); // example 2009-06-15T13:45:30
这是自定义格式字符串的简写:
myDate.ToString("yyyy'-'MM'-'dd'T'HH':'mm':'ss");
当然,您可以构建自己的自定义格式字符串。
更多信息:
【讨论】:
可读的 8601 格式没有标准格式。您可以使用自定义格式:
theDate.ToString("yyyy-MM-dd HH':'mm':'ss")
(标准格式“s”会在日期和时间之间给你一个“T”,而不是空格。)
【讨论】:
/ 作为日期分隔符(如2009/12/16 08:42:16)
添加一些让我感到困惑的信息; 我一直以为这样也能达到同样的效果;
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
【讨论】:
对于像我这样一直使用这种格式的人,我做了一个扩展方法。 我只是想分享,因为我认为它对你有用。
/// <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() 方法有一个字符串格式化程序,可用于以任何所需格式输出日期时间。请参阅 DateTime.ToString Method (String) 了解更多信息。
【讨论】: