根据国家/地区从GMT到本地的时间转换器

时间:2015-02-04 09:30:53

标签: android

我正在从webservice下载一些JSON数据。在这个JSON中,我有一些日期/时间值。 GMT中的所有内容。如何解析此日期字符串,以便结果Date对象在当前语言环境中?

我只得到格林尼治标准时间22:00,03:30的时间。 我希望它按国家/地区的时间格式显示,如上午9:00 /下午。 我是Android的新手,所以我使用了如下所示的方法,但它无法正常工作。

private static String getLocalTime(int hr,int min){         字符串localTime ="&#34 ;;

    Calendar gmt = Calendar.getInstance();

    gmt.set(Calendar.HOUR, hr);
    gmt.set(Calendar.MINUTE, min);
    gmt.setTimeZone(TimeZone.getTimeZone("GMT"));

    Calendar local = Calendar.getInstance();
    local.setTimeZone(TimeZone.getDefault());
    local.setTime(gmt.getTime());

    int hour = local.get(Calendar.HOUR);
    int minutes = local.get(Calendar.MINUTE);
    boolean am = local.get(Calendar.AM_PM) == Calendar.AM;
    String str_hr = "";
    String str_min = "";
    String am_pm = "";

    if (hour < 10)
        str_hr = "0";
    if (minutes < 10)
        str_min = "0";
    if (am)
        am_pm = "PM";
    else
        am_pm = "AM";

    localTime = str_hr + hour + ":" + str_min + minutes + " " + am_pm;

返回localTime;     }

2 个答案:

答案 0 :(得分:0)

假设您的日期格式如下,

String date = "Wed, 04 Feb 15 08:38:32 GMT";

您可以先使用SimpleDateFormatter解析它,Locale设置为default

SimpleDateFormat formatDate = new SimpleDateFormat("EEE, dd MMM yy hh:mm:ss Z", Locale.getDefault());

SimpleDateFormat的{​​{3}})

如果您将其转换为Date对象并打印它,那么它将在您的语言环境中显示时间。

Date d = formatDate.parse(date);
System.out.println(formatDate.format(d));

<强>输出

Wed, 04 Feb 15 01:38:32 +0500

答案 1 :(得分:0)

首先为您想要的输出创建一个SimpleDateFormat

现在使用以下代码进行转换 desired_sdf.format(yourDate.getTime()+TimeZone.getDefault().getRawOffset())