【问题标题】:Convert Date in Java [duplicate]在Java中转换日期[重复]
【发布时间】:2018-12-21 19:29:01
【问题描述】:

我有一个类似“Sun Apr 01 01:00:00 EEST 2018”的日期,我想将其转换为以下数字格式:Day-Month-Year Hours:Minutes:Seconds

我想在 Java 中做到这一点。有人可以帮忙吗?

非常感谢

【问题讨论】:

  • 你尝试过什么吗?
  • 一个格式只是一个字符串,日期不会改变,到目前为止你尝试了什么?
  • 这个重复的问题是大部分读完java7部分会停止,不会去java 8更新
  • 当你说你“有个约会”时,你是指java.util.Date吗?还问,因为该类早已过时且设计不佳,您应该看看是否可以得到 LocalDateZonedDateTime,例如。
  • @OleV.V.如果您知道一个,请投票为重复,如果您认为这是合理的,请投反对票(这两种行动都不排除自己)。但是,我们不要将缺乏研究视为关闭的理由。 IMO 越简单的问题越好,而且它可能也不需要关于 OP 所做的研究的背景故事。诸如“如何做……[一些具体的,不是很广泛的事情]?”之类的问题。对其他人非常有用,这是本网站的主要目标。我们可以合理地回答它们,通常使用不同的方式,稍后可以通过投票来决定人们喜欢什么,应该避免什么。

标签: java date calendar


【解决方案1】:

我会为此使用 DateTimeFormatter。您可以在文档中找到更多信息。 https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html

但是,这里有一个例子:

DateTimeFormatter parser = DateTimeFormatter.ofPattern("EEE MMM dd HH:mm:ss zzz yyyy", Locale.US);
LocalDateTime date = LocalDateTime.parse("Sun Apr 01 01:00:00 EEST 2018", parser);
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd-MM-yyyy HH:mm:ss");
System.out.println(formatter.format(date)); //01-04-2018 01:00:00

Locale.US 部分是必需的,即使您不住在美国,否则它可能无法解析 Sun 到 Sunday 和 Apr 到 April 等等。可能它适用于 Locale.UK 等等,但例如它对我不起作用,因为我住在瑞士。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-08
    • 1970-01-01
    • 1970-01-01
    • 2019-02-19
    • 2020-09-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多