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

如何在java中将时间戳字符串转换为日期,java,string,parsing,Java,String,Parsing,我有一个字符串“1427241600000”,我想把它转换成“yyy-MM-dd”格式 我已经试过了,但是我无法解析它,请查看下面的代码 try { String str = "1427241600000"; SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd"); Date date =sf.parse(str); System.out.println(date); } catch (Pa

我有一个字符串“1427241600000”,我想把它转换成“yyy-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();
}

我想知道我哪里出错了。

你应该换个方向试试。首先从毫秒时间中取出日期,然后格式化它

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

使用
datedate=newdate(Long.parseLong(str))
将字符串转换为日期对象


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

转换在很大程度上取决于时间戳的格式。但是我假设整个过程实际上应该是一个
长的
,并且只是从创建时间戳开始的systemtime。因此,这应该是可行的:

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

您可以这样做:

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


或者您可以使用java.sql.Timestamp。我建议使用
parseLong
而不是
valueOf
,因为您需要
long
而不是
long
DateFormat format = new SimpleDateFormat("MMddyyHHmmss");
Date date = format.parse("022310141505");