有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

从12:00:00到00:00:00的日期转换

我想转换:

 Tue Mar 28 12:00:00 IST 2016 time format
     INTO
 Tue Mar 28 00:00:00 IST 2016

我怎么做

======================
实际上 在数据库中,我的日期以“2016年3月28日星期二00:00:00 IST”格式保存,我想使用此日期获取此记录。但是我的代码如下

Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        calendar.set(Calendar.HOUR, 0);
        calendar.set(Calendar.MINUTE, 0);
        calendar.set(Calendar.SECOND, 0);
        calendar.clear(Calendar.MILLISECOND);
        return calendar.getTime();

但这给了我2016年3月28日星期二12:00:00 IST,而我想要2016年3月28日00:00:00 IST,这样它将与数据库1相同,并将获取


共 (3) 个答案

  1. # 1 楼答案

    您需要^{}常量,该常量用于在24小时时钟中运行,而不是^{}

    Calendar calendar = Calendar.getInstance();
    calendar.setTime(date);
    calendar.set(Calendar.HOUR_OF_DAY, 0); // <  here
    calendar.set(Calendar.MINUTE, 0);
    calendar.set(Calendar.SECOND, 0);
    calendar.clear(Calendar.MILLISECOND);
    
  2. # 2 楼答案

    我认为OP希望将24小时的时间设置为12小时

    试着这样做:

    SimpleDateFormat formatDate = new SimpleDateFormat("hh:mm a");

  3. # 3 楼答案

    您只需使用calendardate对象添加12个小时,例如:

    SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
    Date date = format.parse("2016-03-28");
    System.out.println(date);
    Calendar calendar = Calendar.getInstance();
    calendar.setTime(date);
    calendar.add(Calendar.HOUR, 12);
    System.out.println(calendar.getTime());