我想将Unix时间戳转换为可读的DateTime。 当值为1423525935时,我得到“1970年1月17日01:25”而不是“2015年2月9日23:52:15”
日Thnx
我的剧本
SimpleDateFormat sdf = new SimpleDateFormat("MMMM d, yyyy hh:mm ");
String date1 = sdf.format(properties.get("time"));
System.out.println(date1);
System.out.println(properties.get("time"));
我的输出是
1423525935
January 17, 1970 01:25
1423525976
January 17, 1970 01:25
1423526012
January 17, 1970 01:25
1423526026
January 17, 1970 01:25
1423526047
January 17, 1970 01:25
1423526172
January 17, 1970 01:25
答案 0 :(得分:1)
您似乎使用的是基于秒的Unix Epoch值,而SimpleDateFormat
需要一段时间(以毫秒为单位)。因此,您必须将当前Long
值乘以1000才能获得正确的日期。看看是否有帮助。
答案 1 :(得分:0)
SimpleDateFormat sdf = new SimpleDateFormat("MMMM d, yyyy hh:mm ");
int time = Integer.parseInt(properties.get("time")); //if time property is not an int
Long l = time * 1000L;
String date1 = sdf.format(l);
System.out.println(date1);
这会输出February 9, 2015 05:52
。
正如伊丽莎白的回答提到你使用的是基于秒的纪元时间,我通过将1000乘以它来转换为毫秒秒。