将时间设置为00:00:00

阿德林:

我在用Java重置小时数时遇到问题。对于给定的日期,我要将小时设置为00:00:00。

这是我的代码:

/**
     * Resets milliseconds, seconds, minutes and hours from the provided date
     *
     * @param date
     * @return
     */
    public static Date trim(Date date) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        calendar.set(Calendar.MILLISECOND, 0);
        calendar.set(Calendar.SECOND, 0);
        calendar.set(Calendar.MINUTE, 0);
        calendar.set(Calendar.HOUR, 0);

        return calendar.getTime();
    }

问题是,时间有时是这样12:00:00,有时是这样00:00:00,当我在数据库中查询保存07.02.2013 00:00:00的实体时,以及存储的实际实体时间是12:00:00查询失败。

我知道12:00:00 == 00:00:00

我正在使用AppEngine。这是Appengine错误,问题还是其他问题?还是取决于其他因素?

rgettman:

使用另一个常数代替Calendar.HOUR,使用Calendar.HOUR_OF_DAY

calendar.set(Calendar.HOUR_OF_DAY, 0);

Calendar.HOUR使用0-11(用于AM / PM),并Calendar.HOUR_OF_DAY使用0-23。

引用Javadocs:

公共静态最终int HOUR

获取和设置的字段号,指示上午或下午的时间。HOUR用于12小时制(0-11)。中午和午夜用0而不是12表示。例如,在10:04:15.250 PM,小时是10。

公共静态最终int HOUR_OF_DAY

get和set的字段号指示一天中的小时。HOUR_OF_DAY用于24小时制。例如,在10:04:15.250 PM,HOUR_OF_DAY是22。

测试(“现在”目前是2013年7月23日太平洋夏令时间的14:55):

public class Main
{
   static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

    public static void main(String[] args)
    {
        Calendar now = Calendar.getInstance();
        now.set(Calendar.HOUR, 0);
        now.set(Calendar.MINUTE, 0);
        now.set(Calendar.SECOND, 0);
        System.out.println(sdf.format(now.getTime()));
        now.set(Calendar.HOUR_OF_DAY, 0);
        System.out.println(sdf.format(now.getTime()));
    }
}

输出:

$ javac Main.java
$ java Main
2013-07-23 12:00:00
2013-07-23 00:00:00

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将时间设置为始终:00:00:00?

jQuery timepicker将时间设置为00:00:00

如何将时间“0000-00-00 00:00:00”设置为LocalDateTime?

无法在 Javascript 中使用 setHours() 将时间设置为 00:00:00:00

如何将具有0000-00-00 00:00:00值的日期时间设置为NULL?

如何将字段的默认值设置为“ 0000-00-00 00:00:00”?

无法将DateTimeField的默认值设置为“ 0000-00-00 00:00:00”

如何将java.util.Date实例的时间设置为00:00:00?

winform c# datetimepicker 如何将默认时间设置为 00:00:00

将时间设置为00:00:00不起作用-Java

0000-00-00 00:00:00在时间戳

将chr“ 00:00:00”转换为日期时间“ 00:00:00”

商店时间戳记与时间00:00:00

Hibernate在时间'00:00:00'返回null

20.04 崩溃,错误为 \00\00\00

如何使用javascript获取当前时间为00/00/0000 00:00:00

JavaScript中的日期格式,时间为00:00:00

如何获取时间为00:00:00的系统日期

当DateTime设置为0000-00-00 00:00:00时,MySQL选择MIN DateTime

MySQL导入将时间戳的空值转换为0000-00-00 00:00:00

PHP:将时间字符串00:00:00替换为00:00

将posixct时间格式转换为00:00:00

Mysql:将0000-00-00设置为null

React Native:将TextInput值设置为00:00

MySQL 5.7.26奇怪的问题...无法将日期时间设置为:2020-03-21 00:00:00

将 PHP DateTimeInterface 保存到 MySQL 结果为 0000-00-00 00:00:00

如何将日期时间设置为 00 Javascript

Laravel Carbon 投射日期时间以将秒数设置为 00

Bootstrap DateTimePicker将时间设置为00:00不起作用