Java,将字符串'yyyy-MM-dd'T'HH:mm:ss'解析为ZonedDateTime,而无需更改时间

anon342432:

我有一个字符串“ 2018-07-24T01:30:27”。我想将此解析为具有EST时区的ZonedDateTime,而不更改时间。

我有代码...

String foo = "2018-07-24T01:30:27";
ZoneId zone = ZoneId.of("America/New_York");

SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
return simpleDateFormat.parse(foo).toInstant().atZone(zone);

返回值为

2018-07-24T02:30:27-04:00[America/New_York]

我也尝试过创建此类,但没有帮助

@Configuration
public class TimeZoneConfig {

    @PostConstruct
    public void init() {

        TimeZone.setDefault(TimeZone.getTimeZone("EST"));

        System.out.println("Date in UTC: " + new Date().toString());
    }
}

请给我一些建议吗?

michalk:

由于您要ZonedDateTime考虑使用DateTimeFormatterfrom java.time

String foo = "2018-07-24T01:30:27";
ZoneId zone = ZoneId.of("America/New_York");
        
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss");
TemporalAccessor temporalAccessor = dateTimeFormatter.withZone(zone).parse(foo);
return ZonedDateTime.from(temporalAccessor);

返回的ZonedDateTime将是:

2018-07-24T01:30:27-04:00[America/New_York]

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Java,解析字符串&yyyy-MM-dd' T' HH:mm:ss' 到ZonedDateTime而不更改时间

Swift:日期无法解析“ yyyy-MM-dd'T'HH:mm:ss”字符串

如何将日期时间字符串转换为“ yyyy-MM-dd'T'HH:mm:ss.SSSSSSSSSZ”

将时间从{yyyy-mm-dd hh:mm:ss}转换为{yyyy-mm-dd hh}

Java格式yyyy-MM-dd'T'HH:mm:ss.SSSz到yyyy-mm-dd HH:mm:ss

将日期格式设置为“ yyyy-MM-dd'T'HH:mm:ss.SSS'Z'”

Java SimpleDateFormat(“ yyyy-MM-dd'T'HH:mm:ss'Z'”)给出时区为IST

在Java中将日期从MM / dd更改为yyyy-MM-dd'T'HH:mm:ss.SSZ

将字符串转换为日期时间dd / MM / yyyy hh:mm:ss tt

如何将参数格式从DD / MM / YYY HH:MM; SS更改为DD / MM / YYYY

Java将字符串yyyy-MM-dd HH:mm:ss转换为加拿大/东部时区的时间戳

将日历对象转换为Java格式为“ yyyy-mm-dd hh:mm:ss”的字符串

将时间格式“dd/MM/yyyy hh:mm:ss”转换为“yyyy-MM-ddThh:mm:ss.SSSz”

将字符串dd / mm / yyy转换为yyyy-mm-dd hh:mm:ss

将格式为 yyyy-MM-dd HH:mm:ss.SSS 的字符串日期转换为字符串 MM/dd/yyyy

Java 8日期和时间API-解析yyyy-MM-dd'T'HH:mm:ss.SSSZ

Java字符串日期为XMLGregorianCalendar惠特格式yyyy-MM-dd'T'HH:mm:ss.SSSSSSS'Z'

Python:如何将UTC时间戳从mm / dd / yyyy hh:mm:ss AM更改为dd / mm / yyyy hh:mm:ss AM

java.text.ParseException:无法解析的日期“ yyyy-MM-dd'T'HH:mm:ss.SSSZ”-SimpleDateFormat

java.text.ParseException:无法解析的日期“ yyyy-MM-dd'T'HH:mm:ss.SSSZ”-SimpleDateFormat

Java SimpleDateFormat 无法解析“yyyy-MM-dd'T'HH:mm:ss.SSSSSSSSSX”格式模式中的日期

在java 7中将字符串日期转换为yyyy-MM-dd'T'HH:mm:ss.SSSSSS格式的字符串

如何将 yyyy-MM-dd-hh.mm.ss 中的日期字段转换为 Hive 中的时间戳字段(yyyy-MM-dd hh:mm:ss))

如何将 nvarchar 字符串 mm/dd/yyyy hh:mm:ss 转换为日期时间?

C#将字符串“yyyy-MM-dd hh:mm:ss 'UTC'”转换为日期时间

使用linux bash命令将日期格式dd / mm / yyyy hh:mm:ss更改为mm / dd / yyyy hh:mm:ss

将日期格式从MM / DD / YYYY HH:MM:SS am / pm更改为CSV文件中的YYYY-MM-DD HH:MM:SS

如何在Java中以字符串格式获取当前时间戳?“ yyyy.MM.dd.HH.mm.ss”

将 yyyy-MM-dd'T'HH:mm:ss.mmm'Z' 转换为正常的 "HH:mm a" 格式