gpt4 book ai didi

java 检查 Date 实例是否有时间部分

转载 作者:行者123 更新时间:2023-11-29 07:37:09 25 4
gpt4 key购买 nike

我的类(class)中有一个Date 字段,它可以有两种类型的值:有时间和没有时间。像这样:2015-01-012015-01-01 12:00:00。我想从我的日期开始格式化字符串。我知道我可以使用 SimpleDateFormat 类来执行此操作,但我不知道格式。事实上,如果我的日期有时间部分,我必须使用 yyyy-MM-dd HH:mm:ss 格式,如果我的日期没有时间部分,我必须使用 yyyy -MM-dd 格式。我的问题是,有没有办法在格式化之前检查日期是否有时间部分?

这是我的代码:

private SimpleDateFormat dateTimeFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.ENGLISH);
private SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH);

.....

private String formatDate(Date date){
//I need to something like this:
if(/* `date` has time part */){
return dateTimeFormat.format(date);
}

else{
return dateFormat.format(date);
}
}

最佳答案

你不能可靠地做到这一点,因为一旦你创建了一个 Date 对象,它就被表示为一个以毫秒为单位的数字,其中包括具体时间。因此,您不可能知道该对象是如何构建的以及是否设置了具体时间。

解决方法是检查小时、分钟和秒是否设置为零。请记住,日期被解析为 "yyyy-MM-dd HH:mm:ss" 的可能性很小,但所有这些值都设置为 0 ,仅仅是因为时间确实是 00:00:00。但是,这个概率等于 1/(24 * 60 * 60) = 0.00001157407,所以我假设您可以接受。

关于java 检查 Date 实例是否有时间部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34239687/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com