【发布时间】:2014-10-15 11:38:41
【问题描述】:
Notes 真的不喜欢空白(null) 日期,这让我伤心欲绝。因此,在本机 Notes 应用程序中,我为所有日期字段分配了 GMT 01/10/1970 0:0:0 AM
然后在显示日期的时间(如果它等于 GMT 时间)我在多值字段中显示“-”作为占位符。我想创建一个小的 JAVA 方法,将传递的日期与 GMT 日期进行比较,如果相同则返回 true,否则返回 false。我想我对下面的代码没问题,但是现在我不确定如何将 dt (转换为 GMT )与 GMT 简单 = 似乎不起作用,所以我怀疑我有某种比较冲突。任何指向正确方向的指针表示赞赏。我用谷歌搜索了这个,但找不到直接的答案。
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;
}
【问题讨论】:
-
老实说,这是个坏主意……您需要与一些魔术常数进行比较,而不是空检查:en.wikipedia.org/wiki/Magic_number_(programming)
-
@Frantisek:比尔使用的魔法常数是格林威治标准时间 01/01/1970 0:0:0 AM。这个常量有点“神奇”,因为 Java 类 Date 将该日期表示为从 01/01/1970 0:0:0 AM GMT 开始的“0 毫秒”。有关此问题的更多解释,请参阅我的答案。
标签: java date comparison xpages