Java 使用SimpleDateFormat格式化日期会多出来8小时
时间: 2024-01-20 08:16:07 浏览: 169
Java使用DateTimeFormatter实现格式化时间
Java 使用SimpleDateFormat格式化日期会多出来8小时的原因是因为默认情况下,SimpleDateFormat会将日期格式化为本地时区的时间。如果你的本地时区与标准时区相差8小时,那么格式化后的时间就会多出来8小时。
为了解决这个问题,你可以通过设置SimpleDateFormat的时区来确保格式化后的时间与标准时区一致。可以使用setTimeZone()方法来设置时区,将时区设置为GMT(格林尼治标准时间)即可。
以下是一个示例代码:
```java
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimeZone;
public class DateFormatExample {
public static void main(String[] args) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
sdf.setTimeZone(TimeZone.getTimeZone("GMT"));
Date date = new Date();
String formattedDate = sdf.format(date);
System.out.println("Formatted date: " + formattedDate);
}
}
```
这样设置时区为GMT后,格式化后的日期就不会多出来8小时了。
阅读全文