java 接收string类型的日期格式化 加时区
时间: 2023-08-04 17:12:55 浏览: 110
可以使用 Java 中的 SimpleDateFormat 类和 TimeZone 类来实现日期格式化和加时区的功能。以下是一个示例代码:
```java
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimeZone;
public class Example {
public static void main(String[] args) {
String dateString = "2021-06-01T12:00:00Z";
String pattern = "yyyy-MM-dd'T'HH:mm:ss'Z'";
SimpleDateFormat formatter = new SimpleDateFormat(pattern);
formatter.setTimeZone(TimeZone.getTimeZone("UTC"));
try {
Date date = formatter.parse(dateString);
formatter.applyPattern("yyyy-MM-dd HH:mm:ss z");
formatter.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai"));
String formattedDate = formatter.format(date);
System.out.println(formattedDate);
} catch (Exception e) {
e.printStackTrace();
}
}
}
```
这个示例代码中,我们先定义了一个字符串日期 dateString 和一个日期格式 pattern。然后创建一个 SimpleDateFormat 对象 formatter,并将其时区设置为 UTC。接着使用 formatter 对 dateString 进行解析,得到一个 Date 对象。然后将 formatter 的日期格式和时区分别设置为 "yyyy-MM-dd HH:mm:ss z" 和 "Asia/Shanghai",并将 Date 对象格式化为字符串 formattedDate。最后打印 formattedDate。
运行上述代码,输出结果如下:
```
2021-06-01 20:00:00 CST
```
可以看到,原本的日期时间为 UTC 时间的 2021 年 6 月 1 日 12:00:00,在加上时区 "Asia/Shanghai" 后,被格式化为了北京时间的 2021 年 6 月 1 日 20:00:00。
阅读全文