将时间戳转换为日期

时间:2011-06-16 09:31:41

标签: java android datetime

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

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

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

使用此号码并显示为当前日期的过程是什么

7 个答案:

答案 0 :(得分:6)

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

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

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

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

答案 1 :(得分:1)


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

答案 2 :(得分:1)

你可以这样使用

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

答案 3 :(得分:0)

尝试:

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

答案 4 :(得分:0)

我认为这是Epoch Timestamp将其转换为人类可读的形式使用

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));

希望这可以用于转换此值: 1308114404722

星期三,2011年6月15日05:06:44 GMT

答案 5 :(得分:0)

您可以轻松地转换时间戳。我乘以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);

您可以在documentation

中探索更多格式选项。

答案 6 :(得分:-1)

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

//这里的日期应该很长

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

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