我正在调试一个android框架。 我从设备中提取Dropbox日志,并在/ data / system / dropbox中创建。 日志文件名称以此格式打印。
EVENT_DATA @ 1362451303699
1362451303699是时间戳,我想改变它像05/03/2013 16:00的易读性。
如何转换此时间戳? 是否需要更改任何代码?
非常感谢任何帮助。
答案 0 :(得分:2)
使用:Date date = new Date(timestamp);
编辑完整代码:
String wantedDate = "";
String log = "event_data@1362451303699";
int index = log.indexOf("@");
if(index != -1) {
index = index + 1; // skip @ symbol
if(index < log.length()) { // avoid out of bounds
String logtime = log.substring(+1);
try {
long timestamp = Long.parseLong(logtime);
SimpleDateFormat df = new SimpleDateFormat("dd/MM/yyyy HH:mm");
Date date = new Date(timestamp);
wantedDate = df.format(date);
} catch (NumberFormatException nfe) {
// not a number
}
}
}
if( ! "".equals(wantedDate) ) {
// everything OK
} else {
// error cannot retrieve date!
}
相关文档:
答案 1 :(得分:0)
您可以使用SimepleDateFormat来解析它。例如:
long ts = 1362451303699;
Date date = new Date(ts);
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy HH:mm");
System.out.println(sdf.format(date));
使用SimpleDateFormat
,您可以以更易读的格式显示日期。
答案 2 :(得分:0)
这是一个UNIX纪元时间戳,您只需要将数字的String
表示转换为long
,然后您可以使用它来创建Date
对象,您可以使用DateFormat
格式化。像这样:
// Get this from the log
String timestamp = "1362451303699";
long epoch = Long.parseLong(timestamp);
Date date = new Date(epoch);
DateFormat format = new SimpleDateFormat("dd/MM/yyyy HH:mm");
String formattedDate = format.format(date);