Android-获得不同的UTC时间

时间:2018-07-12 12:34:46

标签: android date utc

我有两种获取UTC日期时间的方法。

方法:1)获取当前的UTC

 public static String getUTCdatetimeAsString()
{


    final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd- HH:mm:ss", Locale.US);
    sdf.setTimeZone(TimeZone.getTimeZone("UTC"));

    final String utcTime = sdf.format(new Date());
    Log.e("utcTime : " ,""+ utcTime);
    return utcTime;
}

在日志下方打印

utcTime : 2018-07-12- 12:37:09

方法:2)从日历中选择日期并获取UTC

public static String dateUTCToLocal() {

    try {
        SimpleDateFormat formatter = new SimpleDateFormat("d/M/yyyy HH:mm:ss", Locale.US);
        formatter.setTimeZone(TimeZone.getTimeZone("UTC"));

        Date value = formatter.parse("12/7/2018 06:07:09");

        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd- HH:mm:ss", Locale.US);
        format.setTimeZone(TimeZone.getDefault());
        return format.format(value);

    } catch (ParseException e) {
        e.printStackTrace();
        return null;
    }
}

在日志下方打印

2018-07-12- 11:37:09

问题::获得不同的UTC日期(相差1小时),我不明白为什么我尝试了许多解决方案,但没有得到理想的结果,请提前帮助我们。

2 个答案:

答案 0 :(得分:1)

尝试这种格式..

 SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd- HH:mm:ss a", Locale.US);

它显示了到下午1点的时间。

答案 1 :(得分:0)

该行“ format.setTimeZone(TimeZone.getDefault());”在“ sdf.setTimeZone(TimeZone.getTimeZone(“ UTC”));“时设置您当前所在的时区将时区设置为“ UTC”。如果要获得UTC时间,则应该坚持第二行