簡體   English   中英

DateTime.ToString問題

[英]DateTime.ToString issue

我嘗試使用“常規日期短時間”格式顯示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

這沒有意義!

“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對象並將其指定為當前文化的任何地方嗎? 如果是的話,也許在那個代碼中有一個錯誤。

希望這可以幫到你:

  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

試試這個

  startDate = DateTime.Now.ToString(System.Globalization.CultureInfo.
    CurrentCulture.DateTimeFormat);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM