使用 "yyyy-MM-dd hh:mm:ss" 模式解析日期
parsing date with "yyyy-MM-dd hh:mm:ss" pattern
我遇到 "yyyy-MM-dd hh:mm:ss" 日期解析模式的奇怪行为。
下面是我的代码。
public static void main(String[] args) throws Exception {
System.out.println(parseDate("2018-08-16 11:00:00"));
System.out.println(parseDate("2018-08-16 12:00:00"));
System.out.println(parseDate("2018-08-16 13:00:00"));
}
public static Date parseDate(String date) throws Exception {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
return sdf.parse(date);
}
我得到以下输出
Thu Aug 16 11:00:00 UTC 2018
Thu Aug 16 00:00:00 UTC 2018
Thu Aug 16 13:00:00 UTC 2018
我不明白为什么“2018-08-16 12:00:00”的第二个输出是 Thu Aug 16 00:00:00 UTC 2018 而不是 Thu Aug 16 12:00:00 UTC 2018.
查看来自 here 的日期解析模式文档。它说
h -> Hour in am/pm (1-12)
有人可以解释一下吗?
感谢期待。
希望对您有所帮助
public static void main(String[] args) throws Exception {
System.out.println(parseDate("2018-08-16 11:00:00 AM"));
System.out.println(parseDate("2018-08-16 12:00:00 PM"));
System.out.println(parseDate("2018-08-16 13:00:00 AM"));
}
public static Date parseDate(String date) throws Exception {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss a");
return sdf.parse(date);
}
输出
Thu Aug 16 11:00:00 IST 2018
Thu Aug 16 12:00:00 IST 2018
Thu Aug 16 13:00:00 IST 2018
对于 Hour in day (0-23)
,您应该使用 H
而不是 hh
:
测试P:
public class TestP{
public static void main(String[] args) throws Exception {
System.out.println(parseDate("2018-08-16 11:00:00"));
System.out.println(parseDate("2018-08-16 12:00:00"));
System.out.println(parseDate("2018-08-16 13:00:00"));
System.out.println(parseDate("2018-08-16 23:00:00"));
}
public static Date parseDate(String date) throws Exception {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd H:mm:ss");
return sdf.parse(date);
}
}
输出:
Thu Aug 16 11:00:00 CLST 2018
Thu Aug 16 12:00:00 CLST 2018
Thu Aug 16 13:00:00 CLST 2018
Thu Aug 16 23:00:00 CLST 2018
您已更改以下行
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
到
DateFormat writeFormat = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss");
小时日期格式如下,
kk :- Hours in 1-24 format
hh :- hours in 1-12 format
KK :- hours in 0-11 format
HH :- hours in 0-23 format
我遇到 "yyyy-MM-dd hh:mm:ss" 日期解析模式的奇怪行为。 下面是我的代码。
public static void main(String[] args) throws Exception {
System.out.println(parseDate("2018-08-16 11:00:00"));
System.out.println(parseDate("2018-08-16 12:00:00"));
System.out.println(parseDate("2018-08-16 13:00:00"));
}
public static Date parseDate(String date) throws Exception {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
return sdf.parse(date);
}
我得到以下输出
Thu Aug 16 11:00:00 UTC 2018
Thu Aug 16 00:00:00 UTC 2018
Thu Aug 16 13:00:00 UTC 2018
我不明白为什么“2018-08-16 12:00:00”的第二个输出是 Thu Aug 16 00:00:00 UTC 2018 而不是 Thu Aug 16 12:00:00 UTC 2018.
查看来自 here 的日期解析模式文档。它说
h -> Hour in am/pm (1-12)
有人可以解释一下吗? 感谢期待。
希望对您有所帮助
public static void main(String[] args) throws Exception {
System.out.println(parseDate("2018-08-16 11:00:00 AM"));
System.out.println(parseDate("2018-08-16 12:00:00 PM"));
System.out.println(parseDate("2018-08-16 13:00:00 AM"));
}
public static Date parseDate(String date) throws Exception {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss a");
return sdf.parse(date);
}
输出
Thu Aug 16 11:00:00 IST 2018
Thu Aug 16 12:00:00 IST 2018
Thu Aug 16 13:00:00 IST 2018
对于 Hour in day (0-23)
,您应该使用 H
而不是 hh
:
测试P:
public class TestP{
public static void main(String[] args) throws Exception {
System.out.println(parseDate("2018-08-16 11:00:00"));
System.out.println(parseDate("2018-08-16 12:00:00"));
System.out.println(parseDate("2018-08-16 13:00:00"));
System.out.println(parseDate("2018-08-16 23:00:00"));
}
public static Date parseDate(String date) throws Exception {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd H:mm:ss");
return sdf.parse(date);
}
}
输出:
Thu Aug 16 11:00:00 CLST 2018
Thu Aug 16 12:00:00 CLST 2018
Thu Aug 16 13:00:00 CLST 2018
Thu Aug 16 23:00:00 CLST 2018
您已更改以下行
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
到
DateFormat writeFormat = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss");
小时日期格式如下,
kk :- Hours in 1-24 format
hh :- hours in 1-12 format
KK :- hours in 0-11 format
HH :- hours in 0-23 format