笔记真的不喜欢空白(null)日期,并且让我没有悲伤的结局。因此,在本机Notes应用程序中,我为所有日期字段分配了值GMT 01/10/1970 0:0:0 AM
然后在时间显示日期,如果它等于我显示的GMT时间" - "作为多值领域的占位符。我想创建一个小的JAVA方法来比较传递给GMT日期的日期,如果相同的返回true则返回false。我觉得我的代码可以在下面说明,但现在我不确定如何将dt(转换为GMT)与GMT进行比较简单=似乎不起作用所以我怀疑我有某种比较冲突。任何正确方向的指针都会受到赞赏。我用Google搜索了这个,但找不到直接答案。
public static Boolean isBlankDate(Date dt){
Boolean rtn = false;
Session s = ExtLibUtil.getCurrentSession();
try{
Date GMT = s.createDateTime("01/01/1970 0:0:0 AM GMT").toJavaDate();
}catch(NotesException e){
System.out.println("Date Create Error " + e.toString());
if (dt = GMT){
rtn = true;
}else{
rtn = false;
}
return false;
}
//compare dt to GMT and if equal return true else false
return rtn;
}
答案 0 :(得分:2)
在Java中,您可以通过firstDate.before(otherDate)或firstDate.after(otherDate)比较日期,它将返回一个布尔值
答案 1 :(得分:2)
您想要检查本机Notes数据字段是否包含01/01/1970 0:0:0 AM GMT您将其解释为空(空)数据值。我假设您从文档中读取数据值,使用.toJavaDate()
将值转换为Java Date,然后想要使用您的方法isBlankDate(Date dt)
测试它是否是01/01/1970 0:0:0 AM GMT
如果这是您想要实现的目标,那么您可以将方法简化为
public static boolean isBlankDate(Date dt) {
return dt.getTime() == 0;
}
.getTime()
返回自 1970年1月1日,00:00:00 GMT由Date对象表示的毫秒数。
如果日期完全 01/01/1970 0:0:0 AM GMT,则返回0
。所以,你唯一需要做的就是测试
dt.getTime() == 0
返回 true ,如果Date dt是01/01/1970 0:0:0 AM GMT并返回 false ,如果没有。
答案 2 :(得分:1)
如果您正在查看比较日期,则java.util.Date类中的isBefore
/ isAfter
非常有用。 java.sql.Date允许您创建Date而不是DateTime。
java.util.Calendar是我通常在我自己的代码中用于日期操作/比较的东西。 Java API声明{@ 3}}已被弃用以支持它。您可以使用setTime
传入java.util.Date。 java.util.Calendar也有locales和timezones。它也有方法之前和之后。
Joda是一个使用频繁的Java日期/时间API,但它并没有包含在Domino服务器中。
答案 3 :(得分:1)
"笔记真的不喜欢空白(空)日期,并且让我没有悲伤的结局。"
实际上并非如此。如果你同时调用.setAnyTime()和.setAnyDate(),你仍然可以保存为DateTime但没有任何特定值。