【发布时间】:2021-08-22 13:34:51
【问题描述】:
我在这方面四处寻找帮助,但同样,这只是我无法为我的具体问题找到合适答案的事情之一。
这里有 2 篇非常详细(而且很有帮助) 我看过的 SO 帖子:
Change date format in a Java string
Java string to date conversion
这就是我所拥有的:
//Date Formatter
SimpleDateFormat dateFormatter1 = new SimpleDateFormat("yyyy-MM-dd", new Locale("EN"));
SimpleDateFormat dateFormatter2 = new SimpleDateFormat("dd MMMM yyyy", new Locale("EN"));
//Convert to Date
Date dateToParse = dateFormatter1.parse("2024-01-01");
//Format OUTPUT date
String dateAsString = dateFormatter1.format(dateToParse);
System.out.println(dateAsString); //01 January 2024
//Convert OUTPUT date from STRING to DATE
Date dateToReturn = dateFormatter1.parse(dateAsString);
System.out.println(dateToReturn.toString()); //Mon Jan 01 00:00:00 SAST 2024
注意:
我同时使用了DateFormatter 和SimpleDateFormatter,但得到了相同的输出。
输出非常不同,我想要实现的是让我的String 以完全相同的格式创建为Date 对象。
我觉得我错过了什么,但我就是不知道是什么。
- 我提供的代码是来自一个更大函数的 sn-p,它返回类型
Date - 该函数不是我自己创建的,我是从其他人停止的地方开始的
【问题讨论】:
-
这并不重要,但你不应该使用 SimpleDateFormat
-
@OneCricketeer 同意,我实际上将其更改为
DateFormatter。我尝试了两种方法,但以相同的结果结束。 :) -
日期实例没有格式。 LocalDate 或 ZonedDate 也没有。当您将日期输出为字符串时,日期具有格式。
-
我建议你不要使用
DateFormat、SimpleDateFormat和Date。这些类的设计很差而且已经过时了,尤其是前两个是出了名的麻烦。而是使用来自java.time, the modern Java date and time API 的LocalDate和DateTimeFormatter。 -
@OneCricketeer 感谢您提供以下反馈和答案。我将考虑将函数更改为使用
LocalDate或DateTimeFormatter。 :)
标签: java simpledateformat