android 时间戳解析出错(总是在 1970 年)

标签 android date unix-timestamp

我正在尝试将字符串(带有 unix 时间戳)转换为格式为 (dd-MM-yyyy) 的日期

这部分起作用了。我现在遇到的问题是我的约会日期是 17-01-1970(而不是 2015 年 3 月 16 日)

我是这样转换的:

SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy");
    Date d = null;
    int dateMulti = Integer.parseInt(Date);
    Calendar cal = Calendar.getInstance(Locale.ENGLISH);
    cal.setTimeInMillis(dateMulti);
    String date = DateFormat.format("dd-MM-yyyy", cal).toString();

    Log.d("test",date);
    try {
        d = dateFormat.parse(date);
    } catch (ParseException e) {
        e.printStackTrace();
    }

其中日期 = 1427101853 结果 = 17-01-1970

我做错了什么?

最佳答案

您在第一行中使用了错误的格式字符串:

SimpleDateFormat dateFormat = new SimpleDateFormat("dd-mm-yyyy");

mm 是分钟。请改用 MM(月)。

编辑 Unix 时间戳是自格林威治标准时间 01-01-1970 00:00:00 以来的秒数。 Java 从格林威治标准时间 01-01-1970 00:00:00 开始以毫秒测量时间。您需要将 Unix 时间戳乘以 1000:

cal.setTimeInMillis(dateMulti * 1000L);

关于android 时间戳解析出错(总是在 1970 年),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29206821/

相关文章:

android - 将页脚添加到 ListView 后崩溃

android - 即使 editText 具有焦点,Talk Back 也会宣布微调器内容描述

Android 库拒绝创建 R.java,除非构建为 com.android.application

android - 从 Android 将图像上传到 tumblr API

javascript - 从没有时区的日期获取 ISO 字符串

java - 比较 JTable 中的 2 列的日期

c - 如何从 time_t/timeval 获取 iso_date ( YYYYMMDD )

java - 为什么大多数 java.util.Date 方法都被弃用了?

Python:如何将 unixtimestamp 和 timezone 转换为 datetime 对象?

python - 将 Unix 时间戳转换为 AOE