一尘不染

将当地时间转换为UTC,反之亦然

java

我正在使用Android应用程序,并且要将本地时间(设备时间)转换为UTC并将其保存在数据库中。从数据库中检索它之后,我必须再次将其转换并显示在设备的时区中。谁能建议如何用Java做到这一点?


阅读 267

收藏
2020-12-03

共1个答案

一尘不染

我使用这两种方法将本地时间转换为GMT / UTC,反之亦然,这对我来说没有任何问题。

public static Date localToGMT() {
    Date date = new Date();
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
    sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
    Date gmt = new Date(sdf.format(date));
    return gmt;
}

将要转换为设备本地时间的GMT / UTC日期传递给此方法:

public static Date gmttoLocalDate(Date date) {

    String timeZone = Calendar.getInstance().getTimeZone().getID();
    Date local = new Date(date.getTime() + TimeZone.getTimeZone(timeZone).getOffset(date.getTime()));
    return local
}
2020-12-03