How to get arabic date when the user selected language is Arabic and date in english format when selected language is english in spring application ? 我尝试根据请求将默认语言环境设置为英语和阿拉伯语,但这并不能帮助我获得阿拉伯语的日历 API 时间(9 小时 15 分钟)。
问问题
3162 次
2 回答
2
使用 Joda 时间或 Java 8 日期时间 API。以下是 Java 8 API 的示例
if(language.equals("English")){
LocalDateTime now = LocalDateTime.now();
}
else{
HijrahDate hijrahDate=HijrahDate.now();
}
于 2013-11-12T07:57:25.090 回答
1
困惑的问题
您的问题令人困惑,您的评论无助于澄清。
您是否想将日期时间的时区调整为阿拉伯位置,例如Riyadh?
您是否要本地化日期时间文本表示中使用的单词,例如月份和日期名称?
您是否要本地化日期时间的文本表示格式,例如日、月、年的表示顺序?
乔达时间
我将使用 Joda-Time 2.3 库编写一些示例代码,希望对您有所帮助。
要创建java.util.Locale,您需要:
- 语言代码(两者之一,见组合列表)
- 国家代码(任一)
示例代码
DateTime dateTimeUtc = new DateTime( DateTimeZone.UTC );
DateTimeZone timeZone = DateTimeZone.forID( "Asia/Riyadh" );
DateTime dateTimeRiyadh = dateTimeUtc.withZone( timeZone );
java.util.Locale locale = new Locale( "ar", "SA" ); // ( language code, country code );
DateTimeFormatter formatter = DateTimeFormat.forStyle( "FF" ).withLocale( locale ).withZone( timeZone );
String output = formatter.print( dateTimeUtc );
转储到控制台...</p>
System.out.println( "dateTimeUtc: " + dateTimeUtc );
System.out.println( "dateTimeRiyadh: " + dateTimeRiyadh );
System.out.println( "output: " + output );
运行时……</p>
dateTimeUtc: 2014-02-16T09:52:33.901Z
dateTimeRiyadh: 2014-02-16T12:52:33.901+03:00
output: 16 فبراير, 2014 AST 12:52:33 م
于 2014-02-16T09:57:38.697 回答