Convert dateTime to date in dd/MM/yy format in java
我有一辆Joda
代码-
1 2 3 | // Input dateTime = 2012-12-31T13:32:56.483+13:00 SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd/MM/yy"); Date date = simpleDateFormat.parse(dateTime.toString("dd/MM/yy")); |
结果:
1 2 | Output - Mon Dec 31 00:00:00 NZDT 2012 Expected Output - 31/12/12 |
号
当我执行以下操作时,我得到了预期的输出,但我不知道如何将其转换为日期-
1 |
请帮帮我。
谢谢
编辑-我希望最终结果是dd/mm/yy格式的使用日期。我不想要字符串输出。我的输入是joda datetime yyyy-mm ddthh:mm:ss:+gmt。我需要将jodadatetime转换为utildate。
这是你的做法
1 2 |
正如我最初所说,日期对象没有固有的格式。
字符串可以按照规范格式化,但其后面的日期对象始终是完全精确的,并且没有任何固有的格式概念。
将"日期和时间"
1 2 3 4 5 6 7 8 9 |
如果您来自于jodatime
1 2 3 4 |
号
希望这有帮助!
见:
- http://joda time.sourceforge.net/apidocs/org/joda/time/datetime.html todatemiddy())
- http://joda time.sourceforge.net/apidocs/org/joda/time/base/abstractinstant.html_todate()。
现在我又不确定你想要什么。您现在要字符串格式的日期吗?
1 | return simpleDateFormat.format( date); // from java.util.Date |
或使用jodatime:
1 | return dateTime.toString("dd/MM/yy"); // from org.joda.time.DateTime |
。
DR
1 | OffsetDateTime.parse("2012-12-31T13:32:56.483+13:00" ).toLocalDate() |
。joda time被java.time取代
现在处于维护模式的joda time项目建议迁移到java.time类。
ISO 8601标准您的输入字符串采用标准ISO 8601格式。
默认情况下,java.time类使用标准格式,因此无需指定格式模式。
日期时间对象与字符串正如接受的答案所解释的,您不应该将日期时间对象与可能以文本形式表示其值的字符串相混淆。
将输入字符串解析为
1 | OffsetDateTime odt = OffsetDateTime.parse("2012-12-31T13:32:56.483+13:00" ); |
埃多克斯1〔6〕
如果您需要仅限日期的值,请使用
1 | LocalDate localDate = odt.toLocalDate(); |
。
问题是您不需要字符串,只需要日期对象。那就这样吧。如果以后需要字符串,请调用
JavaTimeFr框架是在Java 8和之后构建的。这些类取代了麻烦的旧遗留日期时间类,如
现在处于维护模式的joda time项目建议迁移到java.time类。
要了解更多信息,请参阅Oracle教程。以及搜索堆栈溢出以获得许多示例和解释。规格为JSR 310。
在哪里获取java.time类?
- Java SE 8和SE 9及以后
- 内置。
- 标准JAVA API的一部分与捆绑实现。
- Java 9增加了一些次要的特性和修复。
- Java SE 6和SE 7
- 大部分JavaTimeActudio都被移植到TealEnter后端的Java 6和7中。
- 安卓
- threetenabp项目专门为Android调整threeten backport(如上所述)。
- 看看如何使用三连珠……
threeten额外项目使用额外的类扩展java.time。这个项目是将来可能添加到java.time的一个试验场。您可以在这里找到一些有用的类,如
使用Java 8提供的日期时间类
1 | LocalDate parsedDate = LocalDate.parse(dateStr,DateTimeFormatter.ISO_ZONED_DATE_TIME); |
。