Android 将 unix 时间戳设置为 DatePicker

Posted

技术标签:

【中文标题】Android 将 unix 时间戳设置为 DatePicker【英文标题】:Android set unix timestamp to a DatePicker 【发布时间】:2012-07-25 11:48:29 【问题描述】:

我正在尝试使用此代码为 android DatePicker 设置 unix 时间戳

Date date = new Date();
date.setTime(((long)unixTimeStamp*1000));
datePickerDateDue.init(date.getYear(), date.getMonth(), date.getDay(), null);

但 Android DatePicker 设置为错误值(1900 年 1 月 1 日)

(((我不喜欢玩枣子...)))

【问题讨论】:

你能展示一下unixTimeStamp()方法吗?另外,什么是“错误值”? 错误值是 1900 年 1 月 1 日,对于 unix 时间戳,它可能类似于今天的 1343336160:2012 年 7 月 26 日星期四 20:56:00 GMT “可能”?您是否记录了它以确保值正确?此外,您应该为此使用Calendar,因为许多Date 方法已被弃用。 是的,Eric 甚至直接硬编码了一个值,但仍然是错误的,我使用的方法都没有被弃用,但如果您认为可以解决问题,我不介意使用 Calendar 代替? 【参考方案1】:

根据 cmets,尝试使用 Calendar 类。您还可以Logyearmonthday 的输出以确保它们是正确的。

Calendar c = Calendar.getInstance();
c.setTimeInMillis(((long) unixTimeStamp) * 1000L);
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH);
int day = c.get(Calendar.DAY_OF_MONTH);
datePickerDateDue.init(year, month, day, null);

【讨论】:

好的,我编辑了你的答案,它的工作原理是这样的,但是 Long.parseLong() 并不是很漂亮,所以如果你有任何其他方式可以再次编辑你的答案;)非常感谢跨度> 你试过使用((long) unixTimeStamp) * 1000L吗?如果你能在数学上做到这一点,那将是最佳的。 我以后会记得使用日历而不是日期

以上是关于Android 将 unix 时间戳设置为 DatePicker的主要内容,如果未能解决你的问题,请参考以下文章

excel怎么样批量将unix时间戳转化为北京时间

将 Unix 时间戳转换为时区?

excel怎么样批量将unix时间戳转化为北京时间

Excel技巧|如何在Excel中快速的批量将unix时间戳转化为北京时间

将dateTime格式转换为Unix时间戳或将Unix时间戳转换为dateTime格式

如何使用 Shell 将 ISO 8601 时间戳转换为 Unix 时间戳?