你的回答说以上代码获取的是当地时间0点,意思如果我在北京,我将这个时间转化为格林威治标准时间时会变成当天8点吗
时间: 2024-03-01 13:54:57 浏览: 17
是的,如果你在北京,将当地时间转换为格林威治标准时间时,会相差8个小时,也就是说当地时间0点转换为格林威治标准时间时是当天的8点。
如果要获取格林威治标准时间的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);
```
这里的`setTimeZone()`方法将时区设置为GMT(格林威治标准时间),所以获取到的0点是格林威治标准时间的0点。
相关问题
java中获取今天0点和昨天0点的时间怎么写 请分别告诉我这个0点是当地时间0点和国标时间0点两种情况下代码怎么写
获取今天0点和昨天0点的时间,可以使用以下代码:
```java
// 当地时间0点
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd 00:00:00");
String zeroTimeStr = sdf.format(date);
Date zeroTime = sdf.parse(zeroTimeStr);
// 当地时间昨天0点
Calendar cal = Calendar.getInstance();
cal.setTime(date);
cal.add(Calendar.DAY_OF_YEAR, -1);
String yesterdayZeroTimeStr = sdf.format(cal.getTime());
Date yesterdayZeroTime = sdf.parse(yesterdayZeroTimeStr);
// 国标时间0点
sdf.setTimeZone(TimeZone.getTimeZone("GMT"));
String zeroTimeGMTStr = sdf.format(date);
Date zeroTimeGMT = sdf.parse(zeroTimeGMTStr);
// 国标时间昨天0点
cal.setTime(date);
cal.add(Calendar.DAY_OF_YEAR, -1);
sdf.setTimeZone(TimeZone.getTimeZone("GMT"));
String yesterdayZeroTimeGMTStr = sdf.format(cal.getTime());
Date yesterdayZeroTimeGMT = sdf.parse(yesterdayZeroTimeGMTStr);
```
以上代码分别给出了当地时间和国标时间两种情况下获取今天0点和昨天0点的时间的代码。
当地时间的0点和昨天0点的获取代码和之前回答的一样,这里不再赘述。
国标时间的0点和昨天0点的获取代码,与之前的代码相比,只是在获取时将时区设置为了GMT(格林威治标准时间)。
这里获取的0点是指国标时间0点还是当地时间0点
以上代码获取的是当地时间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`类的时候仍然使用的是本地时区。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)