C# 使用自定义模式本地化日期时间
我正在为一个应用程序进行本地化,该应用程序使用自定义模式来格式化日期和时间 一个例子是: dd-MM-HH:MM 我需要为日期获取这种自定义格式的本地化版本,以便使用数字获取日期和时间,基本上使用本地顺序(dd-MM或MM-dd)和本地分隔符获取日期和时间 这相当简单,只要我使用默认格式,但一旦我偏离这些,格式就变成硬编码 有什么想法吗 谢谢你,乔纳斯 编辑:C# 使用自定义模式本地化日期时间,c#,datetime,localization,C#,Datetime,Localization,我正在为一个应用程序进行本地化,该应用程序使用自定义模式来格式化日期和时间 一个例子是: dd-MM-HH:MM 我需要为日期获取这种自定义格式的本地化版本,以便使用数字获取日期和时间,基本上使用本地顺序(dd-MM或MM-dd)和本地分隔符获取日期和时间 这相当简单,只要我使用默认格式,但一旦我偏离这些,格式就变成硬编码 有什么想法吗 谢谢你,乔纳斯 编辑: 我有cultureInfo对象,问题是当我执行DateTime.ToString(“ES”)时,我得到的信息太多了-我只需要月+日,但使
我有cultureInfo对象,问题是当我执行DateTime.ToString(“ES”)时,我得到的信息太多了-我只需要月+日,但使用默认的ToString,我得到年+月+日 再次编辑: 我知道如何为我使用的每个CultureInfo对象更改短日期模式。然而,在某些情况下,我还需要默认的ShortDate模式,因此,不幸的是,更改它会给我留下另一个相同的问题
最终编辑:以防有人在意。我从未找到解决方案,因此我编写了一个静态函数,用于检查当前的CultureInfo,并返回格式正确的日期(无年份)。该类将是开始查找的好地方。该类将是开始查找的好地方。也许您可以尝试以下方法:
DateTime.Now.ToString(new System.Globalization.CultureInfo(Thread.CurrentThread.CurrentCulture.Name));
例如,如果我想显示特定区域性的时间,我会这样做:
DateTime.Now.ToString(new System.Globalization.CultureInfo("ES-es"))
cultureinfo充当IFormatProvider。也许您可以尝试以下方法:
DateTime.Now.ToString(new System.Globalization.CultureInfo(Thread.CurrentThread.CurrentCulture.Name));
例如,如果我想显示特定区域性的时间,我会这样做:
DateTime.Now.ToString(new System.Globalization.CultureInfo("ES-es"))
cultureinfo充当IFormatProvider。查看DateTimeFormatInfo类(cultureinfo.DateTimeFormat属性),特别是属性DateSeparator、TimeSeparator、ShortDatePattern。查看DateTimeFormatInfo类(cultureinfo.DateTimeFormat属性),特别是属性DateSeparator、TimeSeparator、,ShortDatePattern.我有cultureInfo对象,问题是当我执行DateTime.ToString(“ES”)时,我得到的信息太多-我只需要月+日,但默认的ToString,我得到的是年+月+日。我有cultureInfo对象,问题是当我执行DateTime.ToString(“ES”)时,我得到的信息太多-我只需要月+日,但是使用默认的ToString,我得到年+月+日.DateTime.Now.ToString(“dd-MMM-yy”,new-System.Globalization.CultureInfo(“es-CO”)——这是一个包括format.DateTime.Now.ToString(“dd-MMM-yy,new-System.Globalization.CultureInfo(“es-CO”)——这是一个包含format的示例。