将时间戳转换为日期



我从android中的短信中获取日期,作为时间戳,从epoch开始以秒或毫秒为单位。我需要使用java将其显示为标准日期和时间。

int date      = (cursor.getColumnIndex(SmsReceiver.DATE));

这会返回一些数字,如1308114404722。

使用这个数字并显示为当前日期的过程是什么

int date = ...
Date dateObj = new Date(date);

要格式化Date对象,请使用例如SimpleDateFormat:

DateFormat df = new SimpleDateFormat("dd-MM-yyyy");
String text = df.format(dateObj);

此外,您应该在long中存储自epoch值以来的毫秒数,而不是在int中,因为int不够大。(事实上,数字1308114404722甚至不适合32位的int)。


SimpleDateFormat formatter = new SimpleDateFormat("HH:mm dd.MM.yyyy");
Date date = new Date(1308114404722);
Calendar cal = Calendar.getInstance();
cal.setTime(date);

您可以使用类似的

public static java.util.Date toDate(java.sql.Timestamp timestamp) {
long millisec = timestamp.getTime() + (timestamp.getNanos() / 1000000);
return new Date(millisec);
}

尝试:

DateFormat df = DateFormat.getInstance();
String dateStr = df.format( new Date( date ) );

我想这是Epoch时间戳,可以使用将其转换为人类可读的形式

int date = (cursor.getColumnIndex(SmsReceiver.DATE));
String date = new java.text.SimpleDateFormat("MM/dd/yyyy HH:mm:ss").format(new java.util.Date (date*1000));

希望这能像转换这个值一样起作用:1308114004722

时间是2011年6月15日星期三格林尼治标准时间05:06:44

您可以轻松地转换时间戳。我乘以了1000,因为有些人在保存时间戳时通常会除以1000。你可以试试1000,也可以不试试。

    DateFormat format = new SimpleDateFormat("h:mm a");
    Date date = new Date();
    date.setTime(Long.parseLong(YOUR_INT_OR_LONG_TIMESTAMP)*1000);
    String readableTime = format.format(date);

您可以在文档

中探索更多格式选项

要将您获得的unix时间戳转换为正常日期,请使用以下代码片段:

//这里的日期应该是一个长

长日期=(cursor.getColumnIndex(SmsReceiver.date));

String standardDate=DateFormat.getDateInstance().format(new Date(Date);

相关内容

  • 没有找到相关文章

最新更新