Java日期时间转换为时区

问题描述 投票:2回答:2

我有一个Tue, 30 Apr 2019 16:00:00 +0800格式的DateTime,它是RFC 2822 formatted date

我需要将其转换为+0800的DateTime中的给定时区

所以,如果我总结一下,

DateGiven = Tue, 30 Apr 2019 16:00:00 +0800
DateWanted = 01-05-2019 00:00:00

我如何用Java实现这一目标?我已经尝试了以下代码,但比当前时间少了08小时,这是[]

30-04-2019 08:00:00

我尝试过的代码

String pattern = "EEE, dd MMM yyyy HH:mm:ss Z";
SimpleDateFormat format = new SimpleDateFormat(pattern);
Date startDate = format.parse(programmeDetails.get("startdate").toString());

//Local time zone   
 SimpleDateFormat dateFormatLocal = new SimpleDateFormat("yyyy-MMM-dd HH:mm:ss");

//Time in GMT
Date dttt= dateFormatLocal.parse( dateFormatGmt.format(startDate) );

我有一个Tue格式的DateTime,2019年4月30日16:00:00 +0800,这是RFC 2822格式的日期,我需要将其转换为DateTime中的给定时区,该时间是+0800所以如果我总结一下,。 ..

java datetime timezone datetime-format timezone-offset
2个回答
2
投票

您使用的是正确的方法,但是只使用java-8日期时间API模块,首先使用输入格式表示形式创建DateTimeFormatter


1
投票

您误会了。根据RFC 2822,+0800表示与UTC相比,该时间已应用8小时0分钟的偏移量。因此,您得到的输出是正确的GMT时间。

© www.soinside.com 2019 - 2024. All rights reserved.