【发布时间】:2014-02-23 11:49:31
【问题描述】:
如何根据ASP.NET-MVC 应用程序中的用户区域设置格式化日期和时间,而不用担心日期的顺序?
例如,我想拥有:
- 前导零 (dd) 的日期;
- 月份缩写三字母表 (MMM);
- 全年 (yyyy);
- 时间只是小时和分钟,都带有前导零 (HH:mm);
- 取决于用户是否来自美国,在时间之后显示 AM/PM;
每个国家/地区以不同的顺序显示日期。美国首先显示月份而不是天数而不是年份 (MMM/dd/yyyy)。在中国首先是年比月比日(yyyy-MMM-dd)(IIRC)。在欧洲,大多数国家/地区以这种格式显示日期:dd-MMM-yyyy。
更不用说在每个国家/地区用于分隔月、日和年的斜线/破折号了。
这当然可以通过无休止的if/else 或switch 语句来完成,但是没有更优雅的方式来做到这一点吗?
编辑这是我想出的最好的:
var cltr = System.Threading.Thread.CurrentThread.CurrentCulture;
DateTime.Now.ToString(cltr.DateTimeFormat.ShortDatePattern + " " + cltr.DateTimeFormat.ShortTimePattern)
它仅以数字显示日期。我将如何在短月份表示法中更改它但不更改顺序和分隔符等?
【问题讨论】:
-
当它“取决于用户区域设置”时,您无法选择前导零或 12/24 小时格式。
-
放眼大局(因此除了我可以选择或不选择),您知道我该怎么做吗?
-
@Quoter 但这是更大的图景,不是吗?
标签: c# asp.net-mvc date datetime formatting