午夜时分在爪哇获取今天的约会

Akh*_*iar 51 java date

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

  • 日期对象d1应为2012年3月9日12:00 AM
  • 日期对象d2应包含当前日期本身

不会输入日期,而是系统日期.

更新:

Date dt = new Date();
System.out.print(dt.toString());
Run Code Online (Sandbox Code Playgroud)

给出当前的日期和时间

Nis*_*ant 58

    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.
Run Code Online (Sandbox Code Playgroud)

应该是2012年1月9日星期五00:00:00

  • 您是否还必须将毫秒设置为零? (11认同)

小智 33

Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm");
System.out.println(sdf.format(date));
Run Code Online (Sandbox Code Playgroud)

  • 这问题不是在午夜. (9认同)

Jen*_*ann 15

这是一个基于Java 8的解决方案,使用新的java.time包(教程).

如果您可以在代码中使用Java 8对象,请使用LocalDateTime:

LocalDateTime now = LocalDateTime.now(); // current date and time
LocalDateTime midnight = now.toLocalDate().atStartOfDay();
Run Code Online (Sandbox Code Playgroud)


如果您需要遗留日期,即java.util.Date:

LocalDateTime上面创建的内容转换为Date使用这些转换:

LocalDateTime- > ZonedDateTime- > Instant- >Date

  1. 调用atZone(zone)与指定的时区(或ZoneId.systemDefault()为系统默认时区)来创建ZonedDateTime对象,调整后的DST根据需要.

    ZonedDateTime zdt = midnight.atZone(ZoneId.of("America/Montreal"));
    
    Run Code Online (Sandbox Code Playgroud)
  2. 打电话toInstant()转换ZonedDateTimeInstant:

    Instant i = zdt.toInstant()
    
    Run Code Online (Sandbox Code Playgroud)
  3. 最后,调用Date.from(instant)将其转换InstantDate:

    Date d1 = Date.from(i)
    
    Run Code Online (Sandbox Code Playgroud)


总之,它看起来与您的相似:

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());
Run Code Online (Sandbox Code Playgroud)


另见部分遗产日期,时间码(使用Java™教程)为新的互操作性java.time与传统的功能java.util类.


Cha*_*har 10

Calendar currentDate = Calendar.getInstance(); //Get the current date
SimpleDateFormat formatter= new SimpleDateFormat("yyyy/MMM/dd HH:mm:ss"); //format it as per your requirement
String dateNow = formatter.format(currentDate.getTime());
System.out.println("Now the date is :=>  " + dateNow);
Run Code Online (Sandbox Code Playgroud)