将日期时间转换为特定区域设置

时间:2016-05-19 13:38:39

标签: java android localization

我试图转换日期时间Mon Apr 18 22:56:10 GMT+05:30 2016

我必须将其转换为区域设置hi-IN (Hindi)

我执行以下步骤:

Date time = "Mon Apr 18 22:56:10 GMT+05:30 2016";
String dateTimeFormat = "dd MMM yyyy hh:mm aa";
SimpleDateFormat sdfgmt = new SimpleDateFormat(dateTimeFormat, new Locale("hi","IN"));
sdfgmt.setTimeZone(TimeZone.getTimeZone("UTC"));
System.out.println(sdfgmt.format(time));

我得到的输出是,只有月份被翻译。其他数字,AM / PM字段仍未翻译。

任何人都可以为此提供解决方案。我已经浏览了许多类似的帖子,并按照以下链接中的步骤操作: How to change date time language in android

注意:我实际上是在Android应用中使用上面的代码段。

提前致谢。

1 个答案:

答案 0 :(得分:2)

以下是我的工作方式

// Initial date time in String forma†
String timeOrg = "Mon Apr 18 22:56:10 GMT+05:30 2016";
// Corresponding date format
String dateTimeFormatOrg = "EEE MMM dd hh:mm:ss z yyyy";
// SimpleDateFormat using US locale to be able to parse "Mon Apr"
SimpleDateFormat sdfgmtOrg = new SimpleDateFormat(dateTimeFormatOrg, Locale.US);
// Parse the date 
Date time = sdfgmtOrg.parse(timeOrg);

// Target date format
String dateTimeFormat = "dd MMM yyyy hh:mm aa";
// SimpleDateFormat using the target locale
SimpleDateFormat sdfgmt = new SimpleDateFormat(dateTimeFormat, new Locale("hi","IN"));
// Set the Time Zone to UTC
sdfgmt.setTimeZone(TimeZone.getTimeZone("UTC"));
// Print the formatted date
System.out.println(sdfgmt.format(time))

<强>输出:

१८ अप्रैल २०१६ ०५:२६ अपराह्न