我尝试使用"通用日期短时间"显示DateTime
格式。
当我使用g
说明符时,它会给我01-08-13 10:12:00 10:12
而不是01-05-13 10:12
。
似乎复制了时间,我不知道为什么。
任何?
修改1 这是我使用的代码:
var startDate = DateTime.MinValue.ToString("g");
if (Airspace.StartDate != null)
startDate = ((DateTime)Airspace.StartDate).ToString("g"); //01-08-13 00:00:00 00:00
编辑2 当我使用"短日期模式":
时,会出现同样的问题var startDate = DateTime.MinValue.ToString("d");
if (Airspace.StartDate != null)
startDate = ((DateTime)Airspace.StartDate).ToString("d"); //01-08-13 00:00:00
没有意义!
答案 0 :(得分:2)
“d”格式说明符应用短日期模式,“g”是短日期和短时间模式的串联。因此,根据您的结果,您会以某种方式使用包含时间组件的短日期模式。我可以通过明确设置这样一个短日期模式来重现您的结果,如下所示:
Thread.CurrentThread.CurrentCulture.DateTimeFormat.ShortDatePattern = "yyyy-MM-dd HH:mm:ss";
Console.WriteLine(DateTime.Today.ToString("g")); // 2008-05-11 00:00:00 00:00
Console.WriteLine(DateTime.Today.ToString("d")); // 2008-05-11 00:00:00
我认为真正的问题是你最终看到了一些非常奇怪的文化背景!我尝试枚举一组支持的文化,并寻找一个短日期格式包含时间说明符的文化,如下所示:
foreach (var culture in CultureInfo.GetCultures(CultureTypes.AllCultures)
.OrderByDescending(c => c.DateTimeFormat.ShortDatePattern.Length))
{
Console.WriteLine($"{culture.Name} {culture.DateTimeFormat.ShortDatePattern}");
}
但是在几百种文化中,我什么也没想到。那么,您是否可以在代码中的任何位置找到构建CultureInfo
对象并将其指定为当前文化的任何内容?如果是的话,那个代码可能会出错。
答案 1 :(得分:1)
希望这可以帮到你:
DateTime today = DateTime.Now;
Console.WriteLine(today.ToString("dd-MM-yy H:mm"));
//Result: 01-08-13 04:33
Console.ReadLine();
其他格式:http://www.geekzilla.co.uk/View00FF7904-B510-468C-A2C8-F859AA20581F.htm
答案 2 :(得分:0)
试试这个
startDate = DateTime.Now.ToString(System.Globalization.CultureInfo.
CurrentCulture.DateTimeFormat);