设置时间到00:00:00不起作用 - java

Ido*_*kar 4 java

我想设置包含新当前日期和时间00:00:00的字符串.我编写了以下代码,但时间设置为12:00:00

Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MILLISECOND, 0);
String today1 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").
                  format(calendar.getTime())
Run Code Online (Sandbox Code Playgroud)

我很想知道为什么代码不起作用,或者,另一种方法是设置时间 00:00:00

rge*_*man 9

您已经使用了格式字符hh,即基于12小时或上午/下午的小时方案.

h上午/下午(1-12)12号小时

你上午12点没有"我".一天中的时间设置为午夜,但是使用您的格式"yyyy-MM-dd hh:mm:ss",输出最多会让人感到困惑.

您可以执行以下任一操作:

切换到大写"H"字符,根据您的要求切换到24小时制:

H小时(0-23)数字0

new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
Run Code Online (Sandbox Code Playgroud)

输出:

2016-02-18 00:00:00
Run Code Online (Sandbox Code Playgroud)

或者您可以添加"a"格式字符以添加am/pm指定.

am/pm标记文本PM

new SimpleDateFormat("yyyy-MM-dd hh:mm:ss a")
Run Code Online (Sandbox Code Playgroud)

输出:

2016-02-18 12:00:00 AM
Run Code Online (Sandbox Code Playgroud)