【问题标题】:Is there any way to convert date String of any format to millisecond in java?有没有办法在java中将任何格式的日期字符串转换为毫秒?
【发布时间】:2013-06-21 05:40:36
【问题描述】:

在给定String 的情况下,是否有任何函数或库以毫秒为单位获取日期?

This question 展示了如何将格式化的 String 转换为 Date 对象,但是有没有办法使用未格式化的 String 来做到这一点?

【问题讨论】:

  • 简短的回答是,不。长答案是从Apache Commons Lang API 中查看DateUtils#parseDate 之类的东西,它允许您传递可变数量的格式
  • 这个问题没有任何意义。您希望“foo”和“foobar”获得多少毫秒; 10 和 200,还是 42 和 24?

标签: java


【解决方案1】:

基本上,这个任务是不可能的。这是一个例子:

01/04/2012

在美国,这意味着 2012 年 1 月 4 日。在澳大利亚,这意味着 2012 年 4 月 1 日。

在不知道您在哪里以及通常的日期格式意味着什么的情况下,不可能准确地将任意类似日期的字符串映射到与用户实际意思相匹配的日期时间值。

即使您确实了解相关的当地惯例,用户也有一种显着的倾向,即忽略歧义。处理这个问题可能需要深厚的领域知识(或读心技巧!)来消除可能的含义。


仔细想想,这就是为什么现代用户界面通常在用户需要输入日期/时间时使用某种日期选择器小部件的原因

【讨论】:

    【解决方案2】:

    首先将字符串转换为Date。从那里您可以使用Date.getTime() 方法在milis 中获得时间

    【讨论】:

    • 这就是问题所在。如果String的格式未知,如何解析
    • 他告诉这个字符串是一个日期字符串..我认为它是格式化的方式.. :/
    • @StinePike“2013 年 6 月 20 日星期四 20:32:00 +0100”或“2013 年 6 月 19 日星期三”或其他任何内容。我从json 获取日期,有不同类型的格式。
    猜你喜欢
    • 1970-01-01
    • 2012-09-12
    • 2012-01-15
    • 1970-01-01
    • 2021-07-20
    • 2020-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多