java中使用SimpleDateFormat转换yyyy-MM-dd'T'HH:mm:ss.SSS'Z'格式的时间,结果不会转成当前时区的时间吗?
时间: 2024-01-04 19:02:34 浏览: 29
使用SimpleDateFormat转换时间时,默认情况下会将时间解析为UTC时间(即格林威治标准时间)。但是,在格式化输出时,SimpleDateFormat会根据当前时区进行格式化输出。
例如,假设你有一个时间字符串"2021-07-20T08:30:00.000Z",表示UTC时间的2021年7月20日8点30分。你可以使用以下代码将其解析为Date对象:
```
String timeStr = "2021-07-20T08:30:00.000Z";
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
format.setTimeZone(TimeZone.getTimeZone("UTC"));
Date date = format.parse(timeStr);
```
在上述代码中,我们通过`setTimeZone`方法将SimpleDateFormat设置为UTC时区,以便正确解析时间字符串。
接下来,如果你需要将Date对象按照当前时区的格式进行输出,可以使用以下代码:
```
SimpleDateFormat outputFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String outputStr = outputFormat.format(date);
```
在上述代码中,我们创建了一个新的SimpleDateFormat对象,并将其格式化字符串设置为当前时区的格式。然后,我们使用`format`方法将Date对象格式化为字符串。此时,输出的时间将会是当前时区的时间。
因此,你可以在Java中使用SimpleDateFormat转换"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"格式的时间,并将其转换为当前时区的时间。