将本地时间转换为 UTC,反之亦然
我正在开发Android应用程序,我想将本地时间(设备时间)转换为UTC并将其保存在数据库中。从数据库中检索它后,我必须再次转换它并显示在设备的时区中。任何人都可以建议如何在Java中执行此操作?
我正在开发Android应用程序,我想将本地时间(设备时间)转换为UTC并将其保存在数据库中。从数据库中检索它后,我必须再次转换它并显示在设备的时区中。任何人都可以建议如何在Java中执行此操作?
我使用这两种方法将本地时间转换为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
}
已接受答案的简化和精简版本:
public static Date dateFromUTC(Date date){
return new Date(date.getTime() + Calendar.getInstance().getTimeZone().getOffset(new Date().getTime()));
}
public static Date dateToUTC(Date date){
return new Date(date.getTime() - Calendar.getInstance().getTimeZone().getOffset(date.getTime()));
}