【问题标题】:Parsing String to Date using SimpleDateFormat使用 SimpleDateFormat 将字符串解析为日期
【发布时间】:2017-11-06 11:28:27
【问题描述】:

我正在尝试通过 SimpleDateFormatstring "Nov 6, 2017 11:47:53 AM" 解析为 Date 但我无法找到要使用的正确格式。有人可以帮助我吗?

【问题讨论】:

  • 请显示您尝试过的内容以及错误/问题所在。你现在问的方式是你希望别人不要帮助你,而是代替你去做。
  • 请在此处粘贴一些代码以识别您的问题。
  • 给您的提示:您可以通过搜索现有问题和答案来更快地找到答案,而不是等待有人在此处输入新答案。
  • 我建议您考虑the modern Java date and time API known as JSR-310 or java.time 而不是过时的DateSimpleDateFormat。我知道它还没有内置在大多数 Android 手机上,但您可以获取 ThreeTenABP 并开始使用它。
  • Java string to date conversion 的可能重复项。

标签: java android date simpledateformat


【解决方案1】:

假设一天中的小时在1-12 的范围内,应该能够解析此文本的模板是MMM d, yyyy hh:mm:ss a。如果它们在0-11 的范围内,请将hh 替换为KK

【讨论】:

    【解决方案2】:

    使用“MMM dd, yyyy hh:mm:ss aaa”

    public class Tester {
    
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            Date date = new Date();
            //Nov 6, 2017 11:47:53 AM
            SimpleDateFormat sdf = new SimpleDateFormat("MMM dd, yyyy hh:mm:ss aaa");
            //sdf.parse(source);
            System.out.println(sdf.format(date));
        }
    
    }
    

    输出:

    2017 年 11 月 6 日上午 04:35:20

    【讨论】:

      【解决方案3】:

      即使在 Android 上,也值得考虑丢弃早已过时的类 Date,尤其是 SimpleDateFormat,但事实证明这很麻烦。我建议购买 ThreeTenABP。它将允许您在 Android 上使用现代 Java 日期和时间 API(对于首次描述 API 的 JSR-310 来说是 3-10)。

          DateTimeFormatter dtf = DateTimeFormatter.ofPattern("MMM d, uuuu h:mm:ss a", Locale.ENGLISH);
          String stringToParse = "Nov 6, 2017 11:47:53 AM";
          LocalDateTime dateTime = LocalDateTime.parse(stringToParse, dtf);
      

      结果是LocalDateTime 中的2017-11-06T11:47:53

      如果您绝对需要一个老式的 Date 对象用于某些遗留 API,您可以这样做:

          Date oldfashionedDate = Date.from(dateTime.atZone(ZoneId.systemDefault()).toInstant());
      

      还有更多关于在this question: How to use ThreeTenABP in Android Project 中使用 ThreTenABP。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-11-21
        • 1970-01-01
        • 2014-12-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多