在安卓系统中将时间戳转换为当前日期

2022-08-31 16:31:15

我在显示日期时遇到了问题,我得到的时间戳1379487711但根据这个,实际时间是9/18/2013 12:31:51 PM,但它显示的时间是17-41-1970。如何将其显示为当前时间。

为了显示时间,我使用了以下方法:

private String getDate(long milliSeconds) {
    // Create a DateFormatter object for displaying date in specified
    // format.
    SimpleDateFormat formatter = new SimpleDateFormat("dd-mm-yyyy");
    // Create a calendar object that will convert the date and time value in
    // milliseconds to date.
    Calendar calendar = Calendar.getInstance();
    calendar.setTimeInMillis((int) milliSeconds);
    return formatter.format(calendar.getTime());
} 

答案 1
private String getDate(long time) {
    Calendar cal = Calendar.getInstance(Locale.ENGLISH);
    cal.setTimeInMillis(time * 1000);
    String date = DateFormat.format("dd-MM-yyyy", cal).toString();
    return date;
}

请注意,我将时间放在setTimeInMillis中,而不是int,请注意我的日期格式具有MM而不是mm(mm表示分钟,而不是月份,这就是为什么您的值为“41”,其中月份应该是)

对于 Kotlin 用户:

fun getDate(timestamp: Long) :String {
   val calendar = Calendar.getInstance(Locale.ENGLISH)
   calendar.timeInMillis = timestamp * 1000L
   val date = DateFormat.format("dd-MM-yyyy",calendar).toString()
   return date
}

评论不被删除:亲爱的试图编辑这篇文章的人 - 完全改变答案的内容,我相信,违反了本网站的行为规则。今后请不要这样做。-莉娜布鲁


答案 2

用于将时间戳转换为当前时间

Calendar calendar = Calendar.getInstance();
TimeZone tz = TimeZone.getDefault();
calendar.add(Calendar.MILLISECOND, tz.getOffset(calendar.getTimeInMillis()));
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.getDefault());
java.util.Date currenTimeZone=new java.util.Date((long)1379487711*1000);
Toast.makeText(TimeStampChkActivity.this, sdf.format(currenTimeZone), Toast.LENGTH_SHORT).show();