【问题标题】:Java Formatting Date StringJava 格式化日期字符串
【发布时间】:2014-08-15 12:45:44
【问题描述】:

我需要转换这个20140815

进入15.08.201415.08.2014 00:00:00

我该怎么做,Java有什么机会

【问题讨论】:

  • 到目前为止,您做了哪些研究,尝试了哪些?提示:SimpleDateFormat...
  • 并且 Date 对象没有格式。只有字符串有格式。您想进行字符串->字符串转换或将字符串解析为日期吗?
  • 我只想要字符串转换/解析而不是字符串到日期
  • @JonSkeet 日期格式?太复杂和没必要。这可以通过简单的字符串操作来完成。简单==最好。

标签: java string date formatting


【解决方案1】:

你可以使用SimpleDateFormat如下

SimpleDateFormat inputFormat = new SimpleDateFormat("yyyyMMdd");
SimpleDateFormat outputFormat = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss");

Date date = inputFormat.parse("20140815");
String result = outputFormat.format(date);

【讨论】:

  • 值得指定时区 (UTC) 和 Locale(例如美国英语)。尽管这种 particular 格式不使用任何特定于语言环境的符号,但进入它是一个好习惯......而且由于存在不存在午夜的时区,您可能会感到有些奇怪如果你不小心也会这样。
【解决方案2】:

为什么要使用日期...只需使用字符串:

String output = input.replaceAll("(....)(..)(..)", "$3.$2.$1"); 

String output = input.replaceAll("(....)(..)(..)", "$3.$2.$1 00:00:00"); 

【讨论】:

  • 您会为日期解析格式而烦恼,因为:a) 它会验证您确实拥有得到了合适的日期; b)它邀请您实际上更长时间地维护更合理的表示(而不是字符串)。我总是对“从日期格式 X 转换为日期格式 Y”任务持怀疑态度,因为通常您应该尽可能地将与日期相关的数据解析为 soon,并将其格式化为 late 尽你所能。根据我的经验,这两点代码很少是相同的。
猜你喜欢
  • 2011-02-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-07
  • 1970-01-01
  • 2023-03-14
  • 1970-01-01
相关资源
最近更新 更多