public class DateFormatBug { public static void main(String[] args) throws ParseException { // 示例一 printBugDate(); } private static void printBugDate() throws ParseException { SimpleDateFormat sdf = new SimpleDateFormat("YYYY-MM-dd HH:mm:ss"); Date date = sdf.parse("2020-1-1 13:12:12"); System.out.println(date); String dateStr = sdf.format(date); System.out.println(dateStr); } }
打印日志为:
Sun Dec 29 13:12:12 CST 2019 2020-12-29 13:12:12
示例二,延伸示例:
private static void printBugDateExtend() throws ParseException { SimpleDateFormat sdf = new SimpleDateFormat("YYYY-MM-dd HH:mm:ss"); Date date = sdf.parse("2019-12-31 13:12:12"); System.out.println(date); String dateStr = sdf.format(date); System.out.println(dateStr); }
打印结果:
Sun Dec 30 13:12:12 CST 2018 2019-12-30 13:12:12
【强制】日期格式化,传入pattern中表示年份统一使用小写的y。
说明:日期格式化时,yyyy表示当天所在的年,而大写的YYYY代表是week in which year(JDK7之后引入的概念),意思是当天所在的周属于的年份,一周从周日开始,周六结束,只要本周跨年,返回的YYYY就是下一年,另外需要注意:
表示月份是大写的M
表示分钟是小写的m
24时制是大写的H
12时制是小写的h
正例:new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
来源:CSDN
作者:Neoollx.
链接:https://blog.csdn.net/Andy_Laux/article/details/103819690