我需要创建两个date对象。如果当前日期和时间是2012年3月9日上午11:30,则
12:00 AM
日期不录入,为系统日期。
更新:
Date dt = new Date();
System.out.print(dt.toString());
提供当前日期和时间
发布于 2012-03-09 14:24:27
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
发布于 2012-03-09 14:38:01
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm");
System.out.println(sdf.format(date));
发布于 2015-07-29 01:45:16
这是一个基于Java8的解决方案,使用了新的java.time package (Tutorial)。
如果可以在代码中使用Java8对象,请使用LocalDateTime
LocalDateTime now = LocalDateTime.now(); // current date and time
LocalDateTime midnight = now.toLocalDate().atStartOfDay();
如果需要旧日期,则为,例如
使用以下转换将上面创建的LocalDateTime
转换为Date
:
LocalDateTime
->ZonedDateTime
->Instant
->Date
ZoneId.systemDefault()
)调用atZone(zone)
来创建ZonedDateTime
对象,并根据需要针对DST进行调整。ZonedDateTime zdt = midnight.atZone(ZoneId.of("America/Montreal"));
toInstant()
将ZonedDateTime
转换为Instant
:Instant i= zdt.toInstant()
Date.from(instant)
将Instant
转换为Date
:Date d1 = Date.from(i)
在摘要中,它看起来与以下内容类似:
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
类的互操作性。
https://stackoverflow.com/questions/9629636
复制相似问题