我需要将时间值更改为0。 我的输入格式为:2016-07-30T06:00:00:000Z 预期成果:2016-07-30 00:00:00 我尝试了一些代码,但它无法正常工作
final Calendar calendar = Calendar.getInstance();
calendar.setTimeZone(timezone);
calendar.setTime(date);
calendar.set(Calendar.0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MILLISECOND, 0);
请提出一些解决方案。 提前谢谢。
答案 0 :(得分:1)
如果您使用的是Java 8,则可以使用新的日期和时间库:
date.toInstant().truncatedTo(ChronoUnit.DAYS)
这会给你正确的时刻。您可以使用Date.from(Instant)
工厂方法轻松将其转换回Date实例。
答案 1 :(得分:1)
你的行
calendar.set(Calendar.0);
是问题。
人们经常误做
calendar.set(Calendar.HOUR, 0);
失败了,而
calendar.set(Calendar.HOUR_OF_DAY, 0);
是正确的方法
e.g。这段代码可以使用
Date date = new Date();
final Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MILLISECOND, 0);
Date zeroedDate = calendar.getTime();
System.out.println(zeroedDate);
跑步时给我
Thu Jun 09 00:00:00 NZST 2016
答案 2 :(得分:0)
以下是如何使用日历
的示例 String months[] = { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug",
"Sep", "Oct", "Nov", "Dec" };
Calendar calendar = Calendar.getInstance();
System.out.print("Date: ");
System.out.print(months[calendar.get(Calendar.MONTH)]);
System.out.print(" " + calendar.get(Calendar.DATE) + " ");
System.out.println(calendar.get(Calendar.YEAR));
System.out.print("Time: ");
System.out.print(calendar.get(Calendar.HOUR) + ":");
System.out.print(calendar.get(Calendar.MINUTE) + ":");
System.out.println(calendar.get(Calendar.SECOND));
calendar.set(Calendar.HOUR, 10);
calendar.set(Calendar.MINUTE, 29);
calendar.set(Calendar.SECOND, 22);
System.out.print("Updated time: ");
System.out.print(calendar.get(Calendar.HOUR) + ":");
System.out.print(calendar.get(Calendar.MINUTE) + ":");
System.out.println(calendar.get(Calendar.SECOND));
}
}
所以我愿意为你摆脱这个
calendar.setTimeZone(timezone);
calendar.setTime(date);
calendar.set(Calendar.0);
并将部分代码更改为
calendar.set(Calendar.HOUR, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
这应该可行我还没有测试过。
有关详情,请访问http://www.java2s.com/Code/JavaAPI/java.util/Calendarsetintfieldintvalue.htm