開發多語言應用程式,并嘗試DateTime在表格的有限空間內將物件格式化為字串。完整的月份名稱可能太長,所以我們必須使用縮寫。
有些文化的格式為“Oct 12”,有些文化的格式為“12. okt”等等。
該標準.ToString("m")幾乎是我想要的,但有縮寫:
https ://learn.microsoft.com/en-us/dotnet/standard/base-types/standard-date-and-time-format-strings#MonthDay
類似的問題,但答案對我們不起作用,因為這決定了月份和日期的順序: 格式化日期字串縮寫月份
有沒有辦法獲得文化的日期格式的整體結構,比如日期和月份的順序,有或沒有“。” 在數字等之后?或者生成所需字串的另一種方式?這感覺應該是相當直截了當的,因為所有的部分都已經存在了。
uj5u.com熱心網友回復:
根據您鏈接的檔案,自定義日期和時間格式“m”由 aCultureInfo的DateTimeFormat.MonthDayPattern屬性定義。所以我會查找當前文化并自定義格式字串。然后將修改后的格式字串與ToString.
uj5u.com熱心網友回復:
我能夠使用文化的 DateTimeFormat 自己解決這個問題,它提供了 MonthDayPattern。通過簡單地將“MMMM”替換為“MMM”,這將解決挑戰,至少對于我們計劃支持的語言環境而言。我沒有測驗所有可能的語言環境。
(我知道它不適用于“ja-JP”,它們的模式中有特殊字符)
DateTime date = DateTime.Now;
CultureInfo culture = new("en-US", false);
DateTimeFormatInfo dateTimeFormat = culture.DateTimeFormat;
string pattern = dateTimeFormat.MonthDayPattern.Replace("MMMM", "MMM");
string formatted = date.ToString(pattern, culture);
“en-US”的模式從“MMMM d”變為“MMM d”,給出“Oct 13”
“nb-NO”的模式從“d. MMMM”變為“d. MMM”,給出“13. okt”。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/516247.html
標籤:C#约会时间本土化格式
