7

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 分钟)。

4

2 回答 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 回答