我有一个格式的日期时间字符串
String date = "2021-05-26 14:23" // GMT Time
现在我的问题是如何转换为当地时间它是GMT时间。。?提前感谢:(
使用java.time
类:
DateTimeFormatter
解析(和格式化(LocalDateTime
表示给定的输入ZonedDateTime
以包括GMT时区,
并转换到另一个时区- 如果需要,
DateTimeFormatter
格式化为字符串
示例:
var formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm");
var input = LocalDateTime.parse(date, formatter).atZone(ZoneId.of("GMT"));
现在可以使用withZoneSameInstant(...)
将其更改为另一个区域,然后,如果需要,可以更改toLocalTime()
或toLocalDateTime()
;或CCD_ 9转换为文本。
您可以使用将String
日期/时间转换为更通用的时间戳
SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");
sdf.setTimeZone(TimeZone.getTimeZone("GMT"));
long timestampGmt = sdf.parse(date).getTime(); // as timestamp
int offset = TimeZone.getDefault().getRawOffset() +
TimeZone.getDefault().getDSTSavings(); // currently set time zone offset
long timestampCurrent = timestampGmt - offset;
String newDate = sdf.format(timestampCurrent); // again to string with same structure