Java 日期无法正常工作
Java Date not working correctly
让我们有以下内容:
Date inDbDate = null;
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
inDbDate = sdf.parse("2015-09-27 23:24:28.035");
现在,当我输出 inDbDate 时,我收到以下信息:
Sun Sep 27 23:24:28 EEST 2015
因此,如果我有两个具有毫秒差异的日期,将无法找出或显示它。
如何使用此格式比较两个日期 - 2015-09-27 23:24:28.035?
如果你想比较两个Date变量,有一些方法提供after(), before(), equals()。
private void someMethod(){
final String dateFormat = "yyyy-MM-dd HH:mm:ss.SSS";
Date firstDate = new Date();
Date secondDate = new Date();
SimpleDateFormat sdf = new SimpleDateFormat(dateFormat);
try {
firstDate = sdf.parse("2015-09-27 23:24:28.035");
secondDate = sdf.parse("2015-09-27 23:24:28.036");
} catch (ParseException pe) {
pe.getMessage();
}
if(firstDate.after(secondDate)) {
System.out.println("The first date is after the second date");
} else{
System.out.println("The first date is before the second date");
}
}
您可以将上述方法复制并粘贴到您的 IDE,然后尝试更改 Date 变量中的时间并查看结果以及更改 if 语句中执行的检查。
如果您在调试器中查看 Date 对象之一的值,您会看到其中有毫秒数,只是在以特定格式打印时没有显示。
1/ you should parse inDbDate with date format ==> inDbDate = sdf.parse("2015-11-11 23:24:28.035");
2/ you can now compare the two dates
if (inDbDate.compareTo(new Date()) > 0) {
System.out.println("inDbDate is after the current date !!");
}
3/ if you want to display, you format it
System.out.println("current time = " + sdf.format(new Date()));
让我们有以下内容:
Date inDbDate = null;
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
inDbDate = sdf.parse("2015-09-27 23:24:28.035");
现在,当我输出 inDbDate 时,我收到以下信息:
Sun Sep 27 23:24:28 EEST 2015
因此,如果我有两个具有毫秒差异的日期,将无法找出或显示它。
如何使用此格式比较两个日期 - 2015-09-27 23:24:28.035?
如果你想比较两个Date变量,有一些方法提供after(), before(), equals()。
private void someMethod(){
final String dateFormat = "yyyy-MM-dd HH:mm:ss.SSS";
Date firstDate = new Date();
Date secondDate = new Date();
SimpleDateFormat sdf = new SimpleDateFormat(dateFormat);
try {
firstDate = sdf.parse("2015-09-27 23:24:28.035");
secondDate = sdf.parse("2015-09-27 23:24:28.036");
} catch (ParseException pe) {
pe.getMessage();
}
if(firstDate.after(secondDate)) {
System.out.println("The first date is after the second date");
} else{
System.out.println("The first date is before the second date");
}
}
您可以将上述方法复制并粘贴到您的 IDE,然后尝试更改 Date 变量中的时间并查看结果以及更改 if 语句中执行的检查。
如果您在调试器中查看 Date 对象之一的值,您会看到其中有毫秒数,只是在以特定格式打印时没有显示。
1/ you should parse inDbDate with date format ==> inDbDate = sdf.parse("2015-11-11 23:24:28.035");
2/ you can now compare the two dates
if (inDbDate.compareTo(new Date()) > 0) {
System.out.println("inDbDate is after the current date !!");
}
3/ if you want to display, you format it
System.out.println("current time = " + sdf.format(new Date()));