.Net中是否有任何方法我可以使用DateTime.ToString()使用的默认格式从ToString(“G”)更改为ToString(“o”)?
我没有选择使用不同的重载,它必须是ToString()。
更新: 我找到了一种使用DateTimeOffset做我需要的方法但是看到Gonzalo的解决方案非常有用。
答案 0 :(得分:3)
这是我能得到的最接近的。唯一的问题是日期和 T 之间有一个空格:
using System;
using System.Threading;
using System.Globalization;
class Test {
static void Main ()
{
Console.WriteLine (DateTime.Now.ToString ("o"));
CultureInfo culture = (CultureInfo) CultureInfo.CurrentCulture.Clone();
culture.DateTimeFormat.ShortDatePattern = "yyyy-MM-dd";
culture.DateTimeFormat.LongTimePattern = "THH:mm:ss.fffffffzzz";
Thread.CurrentThread.CurrentCulture = culture;
Console.WriteLine (DateTime.Now);
}
}
输出结果为:
2009-11-23T00:32:53.5291030-05:00
2009-11-23 T00:32:53.6493060-05:00