使用java将日期时间字符串转换为本地时间



我有一个格式的日期时间字符串

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

相关内容

  • 没有找到相关文章

最新更新