首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >可打包的java.util.Date

可打包的java.util.Date
EN

Stack Overflow用户
提问于 2013-06-18 07:42:59
回答 2查看 3.8K关注 0票数 4

我正在尝试使我的一个类成为Parcelable,它的一个属性是Date对象。

在writeToParcel()方法中,我有:

代码语言:javascript
复制
out.writeLong(myDate.getTime());

在我的createFromParcel()方法中,我有

代码语言:javascript
复制
person.setDate(new Date(in.readLong() * 1000));

我传递给意图的对象有一个日期,如下所示:

代码语言:javascript
复制
new Date(2000,12,06)

但是,当我在另一边读出来的时候,在另一个练习中:

代码语言:javascript
复制
myDate.getYear()+"-"+myDate.getMonth()+"-"+myDate.getDay()

它打印出"2001-0-0“

我猜是包裹处理过程中出了什么问题?

EN

回答 2

Stack Overflow用户

发布于 2013-06-18 07:47:07

您写出的是从Unix时代开始的毫秒数(参见the documentation for getTime())。

接受long值的Date构造函数从Unix时代(参见the documentation for that constructor)开始所用的时间是毫秒。

相反,您正在向构造函数传递从Unix时代开始的微秒数。只需将readLong()值传递给Date构造函数,看看是否有帮助。

票数 3
EN

Stack Overflow用户

发布于 2014-06-18 01:43:17

您的错误在于您创建Date对象的方式,请检查documentation以了解有关它的更多信息。

参数

年份,0是1900 (例如100是2000)。

一年中的月份,0- 11 (例如,6月是5)。

每月的某一天,1- 31 (我不认为它需要示例)。

正如您所看到的,当您执行这个“ Date(2000,12,06)”时,您创建的日期并不是您最初认为要创建的日期。另外,请注意,自从API1以来,该方法已被弃用,所以请不要使用它,除非您的目标是API1,我认为没有人再这样做了。

另外,正如CommonsWare告诉你的那样,在阅读时去掉了结尾的1000个。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17158569

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档