如何将时间戳字符串转换为java中的日期

时间:2015-03-25 13:04:06

标签: java string parsing

我有一个字符串" 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();
}

我想知道我哪里出错了。

4 个答案:

答案 0 :(得分:9)

你应该反过来试试。首先从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));

答案 1 :(得分:2)

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

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

答案 2 :(得分:1)

使用Date date =new Date(Long.parseLong(str));将String转换为Date对象。

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

答案 3 :(得分:0)

你可以这样做:

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

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