C# 基于用户区域性设置日期时间格式
如何根据C# 基于用户区域性设置日期时间格式,c#,asp.net-mvc,date,datetime,formatting,C#,Asp.net Mvc,Date,Datetime,Formatting,如何根据ASP.NET-MVC应用程序中的用户区域设置格式化日期和时间,而不必担心日期的顺序 例如,我想要: 前导零(dd)的日期 月份缩写三字母表(MMM) 全年(yyyy) 时间仅为小时和分钟,均为前导零(HH:mm) 根据用户是否来自美国,在时间结束后显示AM/PM 每个国家都以不同的顺序显示日期。美国显示的第一个月比第几天比第几年(MMM/dd/yyyy)。在中国,年比月比日(yyyy MMM dd)(IIRC)为第一年。在欧洲,大多数国家以这种格式显示日期:dd-MMM-yyy 更不用
ASP.NET-MVC
应用程序中的用户区域设置格式化日期和时间,而不必担心日期的顺序
例如,我想要:
if
/else
或switch
语句来实现,但是没有更优雅的方法来实现吗
编辑这是我想到的最好的方法:
var cltr = System.Threading.Thread.CurrentThread.CurrentCulture;
DateTime.Now.ToString(cltr.DateTimeFormat.ShortDatePattern + " " + cltr.DateTimeFormat.ShortTimePattern)
它仅以数字显示日期。我该如何在短月内改变它,但不改变顺序和分隔符等?我想你是在谈论格式问题。一旦有了
DateTime
对象,就可以根据需要显示它。如果要将日期时间显示为US格式,则必须在DateTime.ToString()
方法中将new CultureInfo(“en-US”)
指定为IFormatProvider
。您可以通过CurrentCulture和CurrentCultureInfo获取用户当前使用的区域性
有关更多详细信息,请参见:当它是“取决于用户区域设置”时,您不必选择前导零或12/24小时格式。从更大的角度来看(因此,除了我可以选择或不选择的内容),您知道我如何做到这一点吗?@Quoter但这是更大的角度,不是吗?我知道这一点,只是不想这样做几百次。那么,有没有一种方法可以自动化新文化信息(“en-US”)的
过程,而不是使用无数的if
/else
语句?