我需要将日期格式设置为具有多种语言的应用,格式化日期的最佳方式是什么,因为每个国家/地区都有不同类型的日期格式,因此可以按地区设置日期格式吗?
答案 0 :(得分:58)
是的,使用DateFormat.getDateInstance(int style, Locale aLocale) 这将以特定于语言环境的方式显示当前日期。
所以,例如:
DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT, yourLocale);
String formattedDate = df.format(yourDate);
请参阅文档以了解样式参数的确切含义(SHORT
,MEDIUM
等)
答案 1 :(得分:13)
SimpleDateFormat有一个构造函数,它接受了语言环境,你试过吗?
http://java.sun.com/javase/6/docs/api/java/text/SimpleDateFormat.html
喜欢的东西
new SimpleDateFormat("your-pattern-here", Locale.getDefault());
答案 2 :(得分:2)
使用Joda-Time 2.4库。 DateTimeFormat
类是DateTimeFormatter
格式化程序的工厂。该类提供forStyle
方法来访问适用于Locale
的格式化程序。
DateTimeFormatter formatter = DateTimeFormat.forStyle( "MM" ).withLocale( Java.util.Locale.CANADA_FRENCH );
String output = formatter.print( DateTime.now( DateTimeZone.forID( "America/Montreal" ) ) );
带有两个字母的参数指定日期部分和时间部分的格式。为短格式指定'S'字符,为中等指定'M',为长指定'L',为完整指定'F'。通过指定样式字符' - 'HYPHEN。
可以省略日期或时间请注意,我们同时指定了区域设置和时区。有些人混淆了两者。
我们需要所有这些部分来正确生成日期时间值的字符串表示。
答案 3 :(得分:1)
看看java.text.DateFormat。 派生类java.text.SimpleDateFormat
更易于使用(功率稍低)以下是Java国际化的一个很好的介绍:http://java.sun.com/docs/books/tutorial/i18n/index.html(解决问题的“格式化”部分等)。
答案 4 :(得分:1)
我同意Laura和SimpleDateFormat,这是在Java中管理日期的最佳方式。您可以设置模式和区域设置。另外,你可以看看这个wikipedia article about Date in the world - 使用它的方式并不多;通常是美国/中国/世界其他地区 -