Java日期时间用阿拉伯语

当用户选择的语言是阿拉伯语时如何获得阿拉伯语日期,如果选择的语言是春季申请中的英语,那么英语格式的日期? 我尝试根据请求将默认语言环境设置为英语和阿拉伯语,但这对我在阿拉伯语中获取日历api时间没有帮助(9小时15分钟)。

使用Joda时间或Java 8 Date time API。 以下是Java 8 API的示例

if(language.equals("English")){ LocalDateTime now = LocalDateTime.now(); } else{ HijrahDate hijrahDate=HijrahDate.now(); } 

困惑的问题

您的问题令人困惑,您的评论无助于澄清。

你想要伊斯兰历法吗? 如果是这样, 马苏德的回答是正确的。

您是否想要调整日期时间到利雅得等阿拉伯地区的时区?

您是否要本地化日期时间的文本表示中使用的单词,例如月份和日期名称?

您是否想要本地化日期时间的文本表示格式,例如日,月,年的呈现顺序?

乔达时间

我将使用Joda-Time 2.3库展开一些示例代码,希望它可能会有所帮助。

要创建java.util.Locale ,您需要:

  • 语言代码(或者,参见组合列表 )
    • ISO 639 alpha-2
    • ISO 639 alpha-3
  • 国家代码(或)
    • ISO 3166 alpha-2国家/地区代码
    • UN M.49数字-3区号

示例代码

 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 ); 

转储到控制台……

 System.out.println( "dateTimeUtc: " + dateTimeUtc ); System.out.println( "dateTimeRiyadh: " + dateTimeRiyadh ); System.out.println( "output: " + output ); 

跑的时候……

 dateTimeUtc: 2014-02-16T09:52:33.901Z dateTimeRiyadh: 2014-02-16T12:52:33.901+03:00 output: 16 فبراير, 2014 AST 12:52:33 م