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 م