【问题标题】:Android set unix timestamp to a DatePickerAndroid 将 unix 时间戳设置为 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 代替?

标签: java android date datepicker


【解决方案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吗?如果你能在数学上做到这一点,那将是最佳的。
  • 我以后会记得使用日历而不是日期
猜你喜欢
  • 2011-11-06
  • 2021-02-12
  • 1970-01-01
  • 2013-04-07
  • 2017-05-18
  • 1970-01-01
  • 2023-03-18
  • 2020-10-19
  • 2020-06-06
相关资源
最近更新 更多