我一直在使用生日提醒应用程序很长一段时间。在此期间,我注意到联系人生日以不同的格式存储在不同的设备上。下面给出了其中几个。
YYYY-MM-DD
YYYY-MM-dd'T'HH:MM:ss'Z'
YYYY-MM-dd'T'HH:MM:ss.SSS'Z'原
许多崩溃和错误报告都需要弄清楚这些格式。
现在,我再次遇到同样的问题日期没有年份。这是一个有效的案例,谷歌联系人支持它。我拥有一个HTC Desire,这些日期存储在我的手机中,格式如下( - MM-dd)。
我想知道的是,当没有指定年份时,Android是否有任何标准方式存储日期(如生日/纪念日)?根据DateParser,它应该采用当前年份,但是,这是无效的。 如何明确指定日期中的年份未知?
提前致谢。
答案 0 :(得分:3)
我不认为Android和暗示核心Java库有一种方法可以保存一个没有年份的日期,因为Date类在内部使用了从纪元时间(1/1/1900)开始的无符号长度。由开发人员处理奇怪的数据,例如缺少年份,或者使用具有“no year”等额外属性的类,或者设置一个默认值,无论何时处理一个没有年份的日期,您都必须处理该默认值。如果你需要做复杂的日期/时间数学,它会很快变得混乱。在这种情况下,您可能希望查看具有Partial之类的Joda-Time library,这可能只是一个月的组合。