【问题标题】:How to converted timestamp string to a date in java如何在java中将时间戳字符串转换为日期
【发布时间】:2015-03-25 13:04:06
【问题描述】:

我有一个字符串“1427241600000”,我希望它转换为“yyyy-MM-dd”格式。

我试过了,但我无法解析它,请查看下面的代码

try {
    String str = "1427241600000";
    SimpleDateFormat sf = new  SimpleDateFormat("yyyy-MM-dd");
    Date date =sf.parse(str);
    System.out.println(date);       
} catch (ParseException e) {
    e.printStackTrace();
}

我想知道我哪里出错了。

【问题讨论】:

  • 或者你可以使用java.sql.Timestamp。

标签: java string parsing


【解决方案1】:

你应该反过来试试。首先从milliTime中取出Date,然后格式化。

String str = "1427241600000";
SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
Date date = new Date(Long.parseLong(str));
System.out.println(sf.format(date));

【讨论】:

  • 我建议使用parseLong 而不是valueOf,因为您需要long 而不是Long
【解决方案2】:

转换很大程度上取决于时间戳的格式。但我认为整个事情实际上应该是long,并且只是时间戳创建时的系统时间。所以这应该有效:

String str = ...;
Date date = new Date(Long.parseLong(str));

【讨论】:

    【解决方案3】:

    使用Date date =new Date(Long.parseLong(str)); 将您的字符串转换为日期对象。

    如果您使用SimpleDateFormat(),则指定为此函数参数的格式应与字符串中日期的格式(在您的情况下为str)相匹配。在您的情况下,yyyy-MM-dd 与时间戳(1427241600000)的格式不匹配。

    【讨论】:

      【解决方案4】:

      你可以这样做:

      使用带有适当格式字符串的SimpleDateFormat(注意使用正确的格式字母,大写和小写有不同的含义!)。

      DateFormat format = new SimpleDateFormat("MMddyyHHmmss");
      Date date = format.parse("022310141505");
      

      【讨论】:

        猜你喜欢
        • 2011-02-14
        • 2020-09-23
        • 1970-01-01
        • 2014-12-06
        • 2011-05-05
        • 1970-01-01
        • 2018-07-28
        • 2011-05-21
        • 1970-01-01
        相关资源
        最近更新 更多