java.sql.Date如何获取当前格林时间
时间: 2024-11-06 15:14:56 浏览: 4
`java.sql.Date` 类型是用来表示自公元 1900 年 1 月 1 日以来的日期,并默认采用本地时区。如果你想获取当前的格林尼治标准时间(UTC),你应该先将当前时间转换为 `java.util.Date` 或 `java.time.Instant`,然后再将其转换为 `java.sql.Date`。
以下是使用 `java.util.Calendar` 和 `java.sql.Date` 的例子:
```java
import java.util.Calendar;
import java.sql.Date;
// 获取当前时间作为 Calendar 对象
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, 0); // 设置为 UTC 时间(忽略时区)
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MILLISECOND, 0);
// 将 Calendar 转换为 Date
Date currentDate = new Date(calendar.getTimeInMillis());
```
如果你想要更现代的方式来处理日期和时间,可以使用 `java.time` 包:
```java
import java.time.LocalDate; // Java 8 及以上
// 获取当前的 LocalDate 然后转换为 SQL 日期
LocalDate localDate = LocalDate.now(ZoneId.of("UTC")); // 使用 UTC 时区
Date sqlDate = Date.from(localDate.atStartOfDay().toInstant());
```
阅读全文