有没有一种简单或优雅的方式来抓住Java Date的一部分时间(小时/分钟/秒/毫秒)(或日历,对我来说无关紧要)?我正在寻找一个很好的方式来分开考虑日期(年/月/日)和时间部分,但据我所知,我被困在分别访问每个字段.
我知道我可以编写自己的方法来单独抓取我感兴趣的字段,但是我会做一个静态的实用程序方法,这是很丑的.此外,我知道Date和Calendar对象具有毫秒精度,但是在这两种情况下,我都没有看到访问毫秒组件的方法.
编辑:我不清楚这一点:使用Date :: getTime()或Calendar :: getTimeInMillis之一对我来说并不是非常有用的,因为那些返回从时代开始的毫秒数(由该日期或日历表示) ,这实际上并没有将时间与剩余的信息分开.
@ Jherico的答案是最接近的事情,我认为,但绝对是我仍然需要自己编写的方法.这不是我要去的,因为它仍然包括返回的毫秒值中的几分钟,几分钟和秒 – 尽管我可能使它为我的目的工作.
我仍然认为每个组件是分开的,虽然当然不是.你可以写一个时间作为任意引用日期的毫秒数,或者你可以写出与年/月/日小时完全相同的时间:分钟:秒.毫秒.
这不是出于显示的目的.我知道如何使用DateFormat来制作漂亮的日期字符串.
编辑2:我的原始问题来自我发现自己写的一小部分效用函数 – 例如:
>检查两个日期是否在同一天表示日期时间;
>检查日期是否在两个其他日期指定的范围内,但有时根据时间分量包含检查,有时不检查.
Joda Time有这种功能吗?
编辑3:@乔恩关于我的第二个要求的问题,只是为了澄清:第二个要求是使用我的日期有时代表整个日子的结果 – 时间部分根本不重要 – 有时代表日期时间(这是IMO,最准确的词包含年/月/日和小时:分钟:秒:…).
当日期代表一整天时,其时间部分为零(例如日期的“时间分量”为午夜),但语义规定范围检查在结束日期包括在内.因为我刚刚离开这个检查到Date :: before和Date ::之前,我必须添加1天到结束日期 – 因此日期的时间分量为零时的特殊情况.
希望没有让事情不那么清楚.