yyyy-MM-dd'T'HH:mm:ss.SSS'Z 转日期少八小时, 怎么解决java
时间: 2024-03-26 22:40:36 浏览: 109
log-merger:简单的命令行实用程序,可根据其时间戳记合并不同的日志文件,从而保留堆栈跟踪
可以使用 Java 中的 SimpleDateFormat 类来解决这个问题。具体步骤如下:
1. 创建 SimpleDateFormat 对象,并设置时区为 UTC。
```
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
dateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
```
2. 解析日期字符串。
```
String dateString = "2022-01-01T00:00:00.000Z";
Date date = dateFormat.parse(dateString);
```
3. 将 Date 对象转换成想要的日期格式。
```
SimpleDateFormat outputFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String outputDateString = outputFormat.format(date);
```
完整的代码示例:
```
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimeZone;
public class Main {
public static void main(String[] args) throws Exception {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
dateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
String dateString = "2022-01-01T00:00:00.000Z";
Date date = dateFormat.parse(dateString);
SimpleDateFormat outputFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String outputDateString = outputFormat.format(date);
System.out.println(outputDateString);
}
}
```
输出结果为:
```
2022-01-01 08:00:00
```
注意:上述代码中的输出时区与你所在的时区有关,可能不同于我的输出结果。
阅读全文