Java-获取当天凌晨的时间戳

获取当天凌晨的时间戳,学习了五种方式

public static void main(String[] args) {
    try {
        smallHours();
    }catch (ParseException e){
        e.printStackTrace();
    }
}

public static void smallHours() throws ParseException{
    //当天日期
    Date date = new Date();
    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
    String today = simpleDateFormat.format(date.getTime());
    System.out.println("当天日期" + today);

    //1、当天凌晨(毫秒)
    long daytime1 = simpleDateFormat.parse(today).getTime();
    System.out.println("1、当天凌晨(毫秒)" + daytime1);

    //2、当天凌晨(毫秒)
    long current = System.currentTimeMillis();
    long daytime2 = current-(current+ TimeZone.getDefault().getRawOffset())%(1000*3600*24);
    System.out.println("2、当天凌晨(毫秒)" + daytime2);

    //3、当天凌晨(毫秒)
    Calendar c = Calendar.getInstance();
    c.set(Calendar.HOUR_OF_DAY, 0);
    c.set(Calendar.MINUTE, 0);
    c.set(Calendar.SECOND, 0);
    c.set(Calendar.MILLISECOND, 0);
    long daytime3 = c.getTimeInMillis();
    System.out.println("3、当天凌晨(毫秒)" + daytime3);

    //4、当天凌晨(毫秒)
    long now = System.currentTimeMillis() / 1000l;
    long daySecond = 60 * 60 * 24;
    long dayTime4 = (now - (now + 8 * 3600) % daySecond) * 1000 ;
    System.out.println("4、当天凌晨(毫秒)" + dayTime4);

    //5、当天凌晨(毫秒)-LocalDateTime
    LocalDateTime localDateTime = LocalDateTime.of(LocalDate.now(), LocalTime.MIN);
    Long dayTime5 = localDateTime.toInstant(ZoneOffset.ofHours(8)).toEpochMilli();
    System.out.println("5、当天凌晨(毫秒)" + dayTime5);

}

运行结果:

当天日期2021-06-10
1、当天凌晨(毫秒)1623254400000
2、当天凌晨(毫秒)1623254400000
3、当天凌晨(毫秒)1623254400000
4、当天凌晨(毫秒)1623254400000
5、当天凌晨(毫秒)1623254400000
  • 5
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
Java获取当天凌晨时间戳可以通过以下步骤完成: 1.首先获取当前日期时间戳(System.currentTimeMillis())。 2.利用Java的时间日期类库(如Java.util.Date或Java.time.LocalDateTime)获取当天零时时间(即当天凌晨)。 3.计算当天凌晨时间戳,可以使用常量值或方法。 代码实现: ``` import java.time.LocalDate; import java.time.LocalDateTime; import java.time.ZoneOffset; public class Main { public static void main(String[] args) { // 获取当前时间戳 long currentTimeMillis = System.currentTimeMillis(); // 获取当天凌晨时间 LocalDateTime todayStart = LocalDate.now().atStartOfDay(); long todayStartMillis = todayStart.toInstant(ZoneOffset.ofHours(8)).toEpochMilli(); // 获取当天凌晨时间戳 long todayStartTimestamp = todayStartMillis / 1000; System.out.println("当前时间戳:" + currentTimeMillis); System.out.println("当天凌晨时间戳:" + todayStartTimestamp); } } ``` 以上是使用Java 8的时间日期API来实现的,如果使用Java 7或以下版本,可以使用Java.util.Date类库来获取当天凌晨时间。 代码实现: ``` import java.util.Calendar; import java.util.Date; public class Main { public static void main(String[] args) { // 获取当前时间戳 long currentTimeMillis = System.currentTimeMillis(); // 获取当天凌晨时间 Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.HOUR_OF_DAY, 0); calendar.set(Calendar.MINUTE, 0); calendar.set(Calendar.SECOND, 0); Date todayStart = calendar.getTime(); // 获取当天凌晨时间戳 long todayStartMillis = todayStart.getTime(); long todayStartTimestamp = todayStartMillis / 1000; System.out.println("当前时间戳:" + currentTimeMillis); System.out.println("当天凌晨时间戳:" + todayStartTimestamp); } } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值