【发布时间】:2014-08-29 10:19:50
【问题描述】:
我有一个 16 位数的时间戳来自我无法进入的应用程序。
我想在 Java 应用程序中使用它。
有没有可以进行这种转换的函数?
例子:
1409304572565675 是 2014 年 8 月 29 日 11:29
我发现它可能是一个 php 毫秒时间戳,但找不到任何方法将其转换为 Java 中的日期。
【问题讨论】:
标签: java date timestamp type-conversion
我有一个 16 位数的时间戳来自我无法进入的应用程序。
我想在 Java 应用程序中使用它。
有没有可以进行这种转换的函数?
例子:
1409304572565675 是 2014 年 8 月 29 日 11:29
我发现它可能是一个 php 毫秒时间戳,但找不到任何方法将其转换为 Java 中的日期。
【问题讨论】:
标签: java date timestamp type-conversion
如果它真的是 毫秒(格林威治标准时间 1970 年 1 月 1 日 00:00:000),您只需致电 new Date(1409304572565675L)。
但是,这似乎是一个微秒时间戳,即您必须将其除以 1000 才能获得实际毫秒数,因此 new Date(1409304572565675L / 1000) 将是您的选择。
【讨论】:
试试这个System.out.println(new Date(1409304572565675L/1000 ));
不要忘记时区。
【讨论】:
尝试使用 Long.parseLong:
String x = "1086073200000"
DateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
long milliSeconds= Long.parseLong(x);
System.out.println(milliseconds);
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(milliSeconds);
System.out.println(formatter.format(calendar.getTime()));
【讨论】:
您可以在 Calendar 对象上使用 setTimeInMillis() 方法:
Calendar c = Calendar.getInstance();
c.setTimeInMillis(temp);
【讨论】: