首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在午夜时间用Java获取今天的日期

在午夜时间用Java获取今天的日期
EN

Stack Overflow用户
提问于 2012-03-09 14:02:59
回答 12查看 207.9K关注 0票数 58

我需要创建两个date对象。如果当前日期和时间是2012年3月9日上午11:30,则

12:00 AM

  • date object d2应包含当前日期本身

日期不录入,为系统日期。

更新

代码语言:javascript
复制
Date dt = new Date();
System.out.print(dt.toString());

提供当前日期和时间

EN

回答 12

Stack Overflow用户

回答已采纳

发布于 2012-03-09 14:24:27

代码语言:javascript
复制
    Calendar c = new GregorianCalendar();
    c.set(Calendar.HOUR_OF_DAY, 0); //anything 0 - 23
    c.set(Calendar.MINUTE, 0);
    c.set(Calendar.SECOND, 0);
    Date d1 = c.getTime(); //the midnight, that's the first second of the day.

应在IST 2012年3月5日00:00:00

票数 61
EN

Stack Overflow用户

发布于 2012-03-09 14:38:01

代码语言:javascript
复制
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm");
System.out.println(sdf.format(date));
票数 32
EN

Stack Overflow用户

发布于 2015-07-29 01:45:16

这是一个基于Java8的解决方案,使用了新的java.time package (Tutorial)。

如果可以在代码中使用Java8对象,请使用LocalDateTime

代码语言:javascript
复制
LocalDateTime now = LocalDateTime.now(); // current date and time
LocalDateTime midnight = now.toLocalDate().atStartOfDay();

如果需要旧日期,则为,例如

使用以下转换将上面创建的LocalDateTime转换为Date

LocalDateTime -> ZonedDateTime -> Instant -> Date

  1. 使用指定时区(或系统默认时区为ZoneId.systemDefault() )调用atZone(zone)来创建ZonedDateTime对象,并根据需要针对DST进行调整。

ZonedDateTime zdt = midnight.atZone(ZoneId.of("America/Montreal"));

Instant i= zdt.toInstant()

Date d1 = Date.from(i)

在摘要中,它看起来与以下内容类似:

代码语言:javascript
复制
LocalDateTime now = LocalDateTime.now(); // current date and time
LocalDateTime midnight = now.toLocalDate().atStartOfDay();
Date d1 = Date.from(midnight.atZone(ZoneId.systemDefault()).toInstant());
Date d2 = Date.from(now.atZone(ZoneId.systemDefault()).toInstant());

另请参阅小节Legacy Date-Time Code (The Java™ Tutorials),了解新的java.time功能与遗留java.util类的互操作性。

票数 23
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9629636

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档