• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

比较不同格式的两个日期对象

java 来源:tarquin 3次浏览

我有两个日期。比较不同格式的两个日期对象

第一个日期是系统时间。第二个日期与新闻文章相关,当文章到期时,它被称为end_time。

使用硒来测试文章确实在系统时间超过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"); 
} 

当我运行该程序的日期是按以下格式

结束时间:周五11月4 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"); 

,我收拾这个烂摊子,并得到它正常工作任何想法?

===========解决方案如下:

所以你setSystem_time_snapshot()中的

dd:MM:YYY h:mm a 

格式返回一个字符串,但你自卫队

SimpleDateFormat sdf = new SimpleDateFormat("dd:MM:yyyy hh:mm"); 

版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)