我收到一个输入日期字符串,例如:2015-06-02 12:60:30
,输出应该是2015-06-02 00:00:00
。即如何在给定格式yyyy-MM-dd HH:mm:ss
中将HH:mm:ss
设置为零
?
我收到一个输入日期字符串,例如:2015-06-02 12:60:30
,输出应该是2015-06-02 00:00:00
。即如何在给定格式yyyy-MM-dd HH:mm:ss
中将HH:mm:ss
设置为零
?
使用yyyy-MM-dd 00:00:00
格式代替yyyy-MM-dd HH:mm:ss
这将会把小时、分钟、秒都变成0,而不是实际的值。
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd 00:00:00");
String dateValue = dateFormat.format(new Date());
System.out.println(dateValue);
calendar.set(Calendar.HOUR_OF_DAY, 0);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Calendar c = Calendar.getInstance();
c.set(Calendar.HOUR, 0);
c.set(Calendar.MINUTE, 0);
c.set(Calendar.SECOND, 0);
System.out.println(sdf.format(c.getTime()));
c.set(Calendar.HOUR_OF_DAY, 0);
System.out.println(sdf.format(c.getTime()));
input.replaceAll("\d\d:\d\d:\d\d", "00:00:00")
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR,2015);
cal.set(Calendar.MONTH,6);
cal.set(Calendar.HOUR_OF_DAY,2);
cal.set(Calendar.MINUTE,0);
cal.set(Calendar.SECOND,0);
cal.set(Calendar.MILLISECOND,0);
Date d = cal.getTime();
并且你可以使用以下方式进行格式化:
SimpleDateFormat sdFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String formatted = sdFormat.format(cal.getTime());
只需提供您想保留的“日期”部分的格式,例如...
String text = "2015-06-02 12:60:30";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date date = sdf.parse(text);
SimpleDateFormat out = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(out.format(date));
输出...
2015-06-02 00:00:00
这是一个小技巧,实际上在 JavaDocs 中有描述
从给定字符串的开头解析文本以生成日期。该方法可能不使用给定字符串的整个文本。
我添加了强调
SimpleDateFormat sm = new SimpleDateFormat("yyyy-MM-dd");
String strDate = sm.format(myDate);