java获取当前年月日的timestamp
时间: 2025-06-29 17:16:58 浏览: 7
### Java 中获取当前年月日的时间戳
在 Java 中可以通过多种方式来获取当前日期对应的时间戳。以下是几种常见的方式:
#### 使用 `java.sql.Timestamp`
可以直接通过 `java.util.Date` 来创建一个新的时间对象并转换成 `Timestamp` 类型。
```java
java.sql.Timestamp timestamp = new java.sql.Timestamp(new java.util.Date().getTime());
```
这种方式能够快速获得精确到毫秒级别的当前时间戳[^1]。
#### 利用 `LocalDate` 和 `Instant`
对于更现代的应用程序来说,推荐使用 `java.time` 包下的类来进行日期操作。下面的例子展示了如何利用 `LocalDate` 结合 `toEpochDay()` 方法以及 `Instant.ofEpochMilli()` 获得当天零点时刻的时间戳。
```java
import java.time.Instant;
import java.time.LocalDate;
long epochMillisOfDayStart = LocalDate.now()
.atStartOfDay() // 设置时间为当日00:00:00
.toInstant(java.time.ZoneOffset.UTC) // 或者指定其他时区偏移量
.toEpochMilli();
// 创建 Timestamp 对象
java.sql.Timestamp dayStartTimeStamp = java.sql.Timestamp.valueOf(
Instant.ofEpochMilli(epochMillisOfDayStart).atZone(java.time.ZoneId.systemDefault()).toLocalDateTime());
System.out.println("Today's start time as timestamp: " + dayStartTimeStamp);
```
这段代码不仅得到了当天起始时刻的时间戳,还将其转化为可读性强的字符串形式输出[^2]。
#### 借助 `Calendar` 类
另一种方法是借助于 `Calendar` 实现相同的功能。这里展示了一个简单的例子用于取得今天的开始时间和结束时间作为时间戳。
```java
import java.util.Calendar;
import java.sql.Timestamp;
public class Main {
public static void main(String[] args){
Calendar cal = Calendar.getInstance();
// 清除小时,分钟,秒数和毫秒数设置为一天中的第一个瞬间.
cal.set(Calendar.HOUR_OF_DAY, 0);
cal.clear(Calendar.MINUTE);
cal.clear(Calendar.SECOND);
cal.clear(Calendar.MILLISECOND);
Timestamp startTimeOfToday = new Timestamp(cal.getTimeInMillis());
System.out.println("Start Time of Today : "+startTimeOfToday);
// 将其设为该天的最后一刻即23:59:59.999
cal.set(Calendar.HOUR_OF_DAY, 23);
cal.set(Calendar.MINUTE, 59);
cal.set(Calendar.SECOND, 59);
cal.set(Calendar.MILLISECOND, 999);
Timestamp endTimeOfToday = new Timestamp(cal.getTimeInMillis());
System.out.println("End Time of Today : "+endTimeOfToday);
}
}
```
上述代码片段实现了对今天范围内的两个极端时间节点——起点与终点——的捕捉,并打印出来供查看[^3].
阅读全文
相关推荐


















