java中获取今天0点和昨天0点的时间怎么写 请分别告诉我这个0点是当地时间0点和国标时间0点两种情况下代码怎么写
时间: 2024-03-01 19:55:04 浏览: 49
获取今天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(格林威治标准时间)。
阅读全文