我Date用Java 创建了一个对象.当我这样做时,它显示如下:date=Tue Aug 09 00:00:00 IST 2011.结果,似乎我的Excel文件减少了一天(27 feb变为26 feb,依此类推)我认为一定是因为时间.我怎样才能把它设置为下午5:30?
是否有一种简单或优雅的方法只能抓取Java Date(或日历)的一天中的时间(小时/分钟/秒/毫秒),这对我来说无关紧要?我正在寻找一种分别考虑日期(年/月/日)和时间部分的好方法,但据我所知,我不得不分别访问每个字段.
我知道我可以编写自己的方法来单独抓取我感兴趣的字段,但我会把它作为一个静态的实用方法,这很难看.另外,我知道Date和Calendar对象具有毫秒级的精度,但在任何一种情况下我都没有办法访问毫秒组件.
编辑:我不清楚这一点:使用Date :: getTime()或Calendar :: getTimeInMillis之一对我来说并不是非常有用,因为那些返回自纪元以来的毫秒数(由该日期或日历表示) ,实际上并没有将时间与其他信息分开.
@ Jherico的回答是最接近的事情,我想,但绝对是我仍需要采用我自己编写的方法.这不是我想要的,因为它仍然包括返回毫秒值的小时,分钟和秒 - 尽管我可能会使它适合我的目的.
我仍然认为每个组件是分开的,当然,它们不是.您可以将时间写为自任意参考日期以来的毫秒数,或者您可以写出完全相同的时间year/month/day hours:minutes:seconds.milliseconds.
这不是用于显示目的.我知道如何使用a DateFormat制作漂亮的日期字符串.
编辑2:我的原始问题来自我发现自己编写的一小组实用函数 - 例如:
Dates 是否代表同一天的日期时间;Joda Time有这种功能吗?
编辑3: @乔恩的问题,关于我的第二个要求,我只想澄清:第二个要求是用我的日期有时代表了整个天的结果-在时间组件并不在所有问题-有时代表一个日期-时间(这是IMO,包含year/month/day 和的 东西最准确的单词hours:minutes:seconds:....
当Date表示整天时,其时间部分为零(例如Date的"time component"为午夜),但语义规定范围检查在结束日期包含.因为我只是将这个检查留给Date :: before和Date :: after,所以我必须在结束日期添加1天 - 因此当Date的时间组件为零时的特殊外壳.
希望没有让事情变得不那么清楚.