📅  最后修改于: 2023-12-03 15:38:34.122000             🧑  作者: Mango
在Java中,可以使用java.util.TimeZone
和java.util.Calendar
来将当地时间转换为GMT。
// 获取当前时区
TimeZone local = TimeZone.getDefault();
// 获取当前时间的Calendar对象
Calendar calendar = Calendar.getInstance();
// 设置TimeZone为GMT
calendar.setTimeZone(TimeZone.getTimeZone("GMT"));
// 获取当地时间
Date localTime = calendar.getTime();
// 获取GMT时间
long gmtTime = localTime.getTime() - local.getRawOffset();
// 根据GMT时间创建新的Date对象
Date gmtDate = new Date(gmtTime);
代码解释:
Java 8以后,也可以使用java.time
包中的LocalDateTime
和ZonedDateTime
类以及DateTimeFormatter
类进行日期时间格式化。
// 获取当前时刻的LocalDateTime对象
LocalDateTime localDateTime = LocalDateTime.now();
// 将LocalDateTime对象加上时区信息
ZonedDateTime zonedDateTime = ZonedDateTime.of(localDateTime, ZoneId.systemDefault());
// 格式化日期时间
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String localTimeFormatted = zonedDateTime.format(formatter);
// 将当前时刻的Date对象转换为GMT时间的Date对象
Date gmtDate = Date.from(zonedDateTime.toInstant().minusMillis(zonedDateTime.getOffset().getTotalSeconds() * 1000));
// 将GMT时间格式化为字符串
SimpleDateFormat gmtDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
gmtDateFormat.setTimeZone(TimeZone.getTimeZone("GMT"));
String gmtTimeFormatted = gmtDateFormat.format(gmtDate);
代码解释:
在使用Java进行日期时间转换时,需要注意以下几点: