我有两个约会。
第一个日期是系统时间。第二个日期与新闻文章有关,当文章过期时,它被称为end_time。
我使用selenium来测试当系统时间超过end_time时文章确实会过期。
我的代码如下:
String searchstring = poriginal;
//make objects to be compared
Date parsed_system_time=null;
Date parsed_end_time=null;
//generate a current time object
GenerateSimpleTime current_time = new GenerateSimpleTime();
current_time.setSystem_time_snapshot();
String system_time = current_time.getSystem_time_snapshot();
//set up the SimpleDateFormat to be used for parsing the strings into objects for comparison
//parsing the date format e.g : 04:11:2016 11:34 AM
SimpleDateFormat sdf = new SimpleDateFormat("dd:MM:yyyy hh:mm");
try{
System.out.println("Trying to parse system time: \n");
parsed_system_time = sdf.parse(system_time);
}
catch(ParseException e)
{
System.out.println("Couldnt parse system time...\n");
e.printStackTrace();
}
SimpleDateFormat end_time_sdf = new SimpleDateFormat("dd MMMM, yyyy hh:mm a");
try {
parsed_end_time = end_time_sdf.parse(end_date);
} catch (ParseException e) {
System.out.println("Couldnt parse end_date...\n");
e.printStackTrace();
}
while(parsed_system_time.before(parsed_end_time))
{
current_time.setSystem_time_snapshot();
try {
system_time = current_time.getSystem_time_snapshot();
parsed_system_time = sdf.parse(system_time);
System.out.println("endtime is: "+ parsed_end_time+"\n");
} catch (ParseException e) {
System.out.println("Couldnt parse current_time.getSystem_time_snapshot()...\n");
e.printStackTrace();
}
//System.out.println("system time is: \n");
}
当我运行程序时,日期采用以下格式
endtime:Fri Nov 04 13:49:00 AEST 2016
systemtime:04:11:2016 1:52 PM
如果在比较两个日期时是否有问题,如果它们的格式不同。它不重要吗?
当我运行测试时,我的程序会无限期地运行,并且在系统时间大于结束时间时不会检测到。
setSystem_time_snapshot()执行以下操作:
String pattern= "dd:MM:YYY h:mm a";
SimpleDateFormat simpletime = new SimpleDateFormat(pattern);
system_time_snapshot = simpletime.format(new Date());
System.out.println("system time snapshop is "+system_time_snapshot+"\n");
我清理这个烂摊子并让它正常工作的任何想法?
答案 0 :(得分:1)
所以你的setSystem_time_snapshot()
正在以
dd:MM:YYY h:mm a
但你的sdf是
SimpleDateFormat sdf = new SimpleDateFormat("dd:MM:yyyy hh:mm");
答案 1 :(得分:0)
如果你的最后时间是:Fri Nov 04 13:49:00 AEST 2016, 你应该使用" EEE MMM dd HH:mm:ss zzzz yyyy"在你的SimpleDateFormat
中SimpleDateFormat end_time_sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzzz yyyy");