【问题标题】:How to format the given date "31.12.9999" in the format "yyyy/MM/dd HH:mm:ss"如何以“yyyy/MM/dd HH:mm:ss”格式格式化给定日期“31.12.9999”
【发布时间】:2019-10-15 02:11:38
【问题描述】:

很长一段时间以来,我都有一个普遍的疑问。在日期形成过程中,如果输入日期的格式为“2019/05/22 02:00:23”,那么在下面的行的帮助下,我们可以格式化日期,

String inputDate = "2019/05/22 02:00:23";
SimpleDateFormat dateFormatter = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
Date toDate = dateFormatter.parse(inputDate);

我可以看到输入格式和所需的格式是相同的。假设如果我像下面这样更改输入日期,它会显示 java.text.ParseException: Unparseable date: exception。

String inputDate = "31.12.9999";
SimpleDateFormat dateFormatter = new SimpleDateFormat("yyyy.MM.dd HH:mm:ss");
Date toDate = dateFormatter.parse(inputDate);

请建议如何实现。

【问题讨论】:

  • 那么您更改了日期的格式而没有更改模式,那么您期望什么?你有没有考虑过尝试"dd.MM.yyyy"作为模式?
  • 你想达到什么目的? 31.12.9999 是否也与给定的 dateFormatter 一起解析?请edit您的问题并澄清
  • 如何实现什么?
  • 不要使用已弃用的类...阅读java.time 包及其类,这将有很大帮助,但如果您尝试解析日期-String,其格式仅为不适合。
  • 如果你使用一个处理小时、分钟和秒的模式,然后尝试用它解析一个日期(仅),这个尝试将失败......你必须解析第二个日期 - String 具有仅日期模式,例如 "yyyy.MM.dd"not "yyyy.MM.dd HH:mm:ss"

标签: java datetime-format date-parsing date


【解决方案1】:

请尝试下面我提到的日期格式代码,希望对您有所帮助,

从这里,

String inputDate = "31.12.9999";
SimpleDateFormat dateFormatter = new SimpleDateFormat("yyyy.MM.dd HH:mm:ss");
Date toDate = dateFormatter.parse(inputDate);

改变:

Date date = new SimpleDateFormat("dd.MM.yyyy").parse("31.12.9999");
String formattedDate = new SimpleDateFormat("yyyy.MM.dd HH:mm:ss").format(date);
System.out.println("formattedDate  :: " + formattedDate); 

谢谢,。

【讨论】:

  • 这个可以帮助 Ajith!谢谢!
  • 谢谢,请为那个答案打上绿色的记号,
猜你喜欢
  • 2020-10-23
  • 1970-01-01
  • 2013-11-01
  • 2015-11-03
  • 1970-01-01
  • 1970-01-01
  • 2012-05-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多