Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何得到给定日期的午夜?_Java_Date - Fatal编程技术网

Java 如何得到给定日期的午夜?

Java 如何得到给定日期的午夜?,java,date,Java,Date,我需要知道如何从日期开始计算当前的午夜 例如,我得到“15.06.2012 16:40:20”,我需要“15.06.2012 00:00:00” 公共列表getGamesByDate(Date day)引发SQLException{ 最终日期开始日期=天; //在这里,我需要以某种方式将开始日期转换为午夜 final Date endDate=新日期(day.getTime()+(23*小时)+(59*分钟)); 最终列表games=gameDAO.getGamesByDate(开始日期,结束日

我需要知道如何从日期开始计算当前的午夜

例如,我得到“15.06.2012 16:40:20”,我需要“15.06.2012 00:00:00”

公共列表getGamesByDate(Date day)引发SQLException{
最终日期开始日期=天;
//在这里,我需要以某种方式将开始日期转换为午夜
final Date endDate=新日期(day.getTime()+(23*小时)+(59*分钟));
最终列表games=gameDAO.getGamesByDate(开始日期,结束日期);
返回游戏;
}

您可以使用日历实例获取当前年份、月份和日期。然后你可以随意设定时间

Calendar cal = Calendar.getInstance();
int dayOfMonth = cal.get(Calendar.DAY_OF_MONTH);
int month = cal.get(Calendar.MONTH);
int year = cal.get(Calendar.YEAR);
用作:

公共列表getGamesByDate(Date day)引发SQLException{
final DateTime startDate=新的日期时间(天)。WithTimeAtStartDay();
....
}

他们希望将给定日期的时间设置为午夜,而不是当前日期。IMO不是重复的。这个问题主要是关于
日历
s,这是关于
日期
s。这是最好的解决方案,因为例如在巴西,每年不存在一天的午夜。我很确定OP没有考虑这个细节,但也许他只关心没有时区的本地时间戳。这是一个很好的解决方案,我想我会使用这个,但我将其设置为best solution@Nfear,因为他的解决方案没有任何外部库强烈建议添加库。这是一个高质量、老旧的图书馆。在Java8中,由于存在缺陷,Java.util.Date和.Calendar类正被new取代。这些新课程的灵感来自于乔达时代。在您可以迁移到Java8之前,请使用Joda-Time。这不是一个好的答案。由于夏令时(DST)或其他异常情况,某些时区的某些日期没有午夜。看。
Calendar cal = Calendar.getInstance();
int dayOfMonth = cal.get(Calendar.DAY_OF_MONTH);
int month = cal.get(Calendar.MONTH);
int year = cal.get(Calendar.YEAR);
Date startDate = day;
Calendar cal = Calendar.getInstance();
cal.setTime(startDate);
cal.set(Calendar.HOUR_OF_DAY, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
Date newDate = cal.getTime();
public List<Game> getGamesByDate(Date day) throws SQLException {

    final DateTime startDate = new DateTime(day).withTimeAtStartOfDay();

    ....

}