这里获取的0点是指国标时间0点还是当地时间0点
时间: 2024-03-01 15:54:52 浏览: 126
国家行政区中心点坐标数据
以上代码获取的是当地时间0点。因为`java.util.Date`类并没有存储时区信息,它只是一个表示时间的值。`SimpleDateFormat`类默认使用系统的时区。如果要将时间转换为其他时区的时间,可以使用`TimeZone`类。
例如,如果要获取格林威治标准时间(GMT)的0点和第二天0点的时间,可以这样写:
```java
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd 00:00:00");
sdf.setTimeZone(TimeZone.getTimeZone("GMT"));
String zeroTimeStr = sdf.format(date);
Date zeroTime = sdf.parse(zeroTimeStr);
Calendar cal = Calendar.getInstance();
cal.setTime(date);
cal.add(Calendar.DAY_OF_YEAR, 1);
sdf.setTimeZone(TimeZone.getTimeZone("GMT"));
String nextDayZeroTimeStr = sdf.format(cal.getTime());
Date nextDayZeroTime = sdf.parse(nextDayZeroTimeStr);
```
这里的思路是通过`setTimeZone()`方法设置`SimpleDateFormat`类的时区,然后再将时间格式化为字符串,最后再通过`parse()`方法将字符串解析为`Date`对象。注意,在使用`Calendar`类的时候仍然使用的是本地时区。
阅读全文