不使用Format方法打印日期对象对象、日期、方法、Format

2023-09-04 02:12:23 作者:小萌货

我正在使用SimpleDateFormat类设置模式,并使用parse方法解析StringtoDate对象。

但在不使用方法format()打印Date对象时:

SimpleDateFormat format = new SimpleDateFormat("YYYY-MM-dd");
Date dat1 = format.parse("2017-11-01");
System.out.println(dat1);
php日期格式化方法

我的结果是:

周日12月30日UTC 1990 00:00:00

推荐答案

tl;dr

LocalDate.parse( "2017-11-01" ) 

结果不可复制

您的结果无法复制。请参见code run live at IdeOne.com:

SimpleDateFormat format = new SimpleDateFormat( "YYYY-MM-dd" );
Date dat1 = format.parse( "2017-11-01" );
System.out.println( dat1 );

Sun Jan 01 GMT 2017 00:00:00

java.time

您正在使用麻烦的旧旧类,现在已被java.time取代。

LocalDate ld = LocalDate.parse( "2017-11-01" ) 

ld.toString():2017-11-01

关于java.time

java.time框架内置于Java 8及更高版本中。这些类取代了麻烦的旧legacy日期-时间类,如java.util.DateCalendar、&;SimpleDateFormat

Joda-Time项目现在位于maintenance mode中,建议迁移到java.time类。

要了解更多信息,请参阅Oracle Tutorial。和搜索堆栈溢出以获取许多示例和解释。规范为JSR 310。

从哪里获取java.time类?

Java SE 8、Java SE 9和更高 内置。 带有捆绑实现的标准Java API的一部分。 Java 9添加了一些次要功能和修复。 Java SE 6和Java SE 7 许多java.time功能已在ThreeTen-Backport中重新移植到Java 6&;7。 Android ThreeTenABP项目专门针对Android进行了ThreeTen-Backport适配。 参见How to use ThreeTenABP…。

ThreeTen-Extra项目使用其他类扩展了java.time。该项目为将来可能添加到java.time中提供了一个试验场。您可以在这里找到一些有用的类,如IntervalYearWeekYearQuarter和more。