public static void main(String args[])
{
String string="2012-09-13";
Date str=processFileDate(string);
System.out.println(str);
}
public static Date processFileDate(String str)
{ //returns the date or "null" if doesn't exist
String[] strformat={
"EEE,dd MMM yyyy","MMM dd, yyyy, hh.mmaa zzz",
"EEEE, MMMMM dd yyyy 'at' hh:mm",
"EEEE, MMMMM dd, yyyy, hh:mm",
"EEE MMM dd yyyy, hh:mm ",
"dd MMMMM yyyy'Last updated at' hh:mm zzz",
"MMM dd, yyyy 'at' hh:mmaa",
"MMM dd, yyyy 'at' hh:mmaa zzz",
"MMMMM dd, yyyy, hh:mm aa zzz",
"EEE, MMM dd, yyyy hh:mm ",
"MMMMM dd, yyyy hh:mm zzz",
"MMMM dd, yyyy hh:mm aa",
"MMMM dd, yyyy hh:mmaa",
"MMMM dd, yyyy hh:mm",
"dd MMMM yyyy hh:mm:ss",
"dd MMMM yyyy hh:mm",
"MMMM dd, yyyy",
"dd MMMM yyyy ",
"dd MM yy",
"yyyy MMMM dd",
"dd'st' MMMM,yyyy",
"dd'nd' MMMM,yyyy",
"dd'rd' MMMM,yyyy",
"MMMM dd,yyyy",
"MMM dd yy",
"mm dd yy",
"yyyy-MM-dd",
"yyyy-MM-dd HH:mm:ss",
"E MMM dd hh:mm:ss Z yyyy",
"EEE, dd MMM yyyy HH:mm:ss Z"
};
String temp="null";
for(int i=0;i<str.length();i++){
temp=str.substring(i, str.length());
for(int l=0;l<strformat.length;){
Date strp=checkformat(temp,strformat[l]);
if(strp!=null)
{
return strp;
}
else l++;
}
}
return null;
}
private static Date checkformat(String str, String sdf) {
SimpleDateFormat sdformat=new SimpleDateFormat(sdf);
try{
Date d=sdformat.parse(str);
return d;
}catch(Exception e){}
return null;
}
爲什麼你需要轉換爲相同的格式? – kosa 2012-02-10 16:20:30
'System.out.println(「date date」+ date);'是引用Date.toString()方法。這就是爲什麼打印日期的格式看起來「奇怪」,這是toString()使用的格式。如果您想以默認格式以外的方式顯示日期,則必須使用日期格式化程序(如下所示,當前所有答案)。 – DwB 2012-02-10 16:22:36
@thinksteep:我在數組列表中使用字符串格式「2010年12月9日4:39:38」的這些日期。我必須找到他們最近的。所以我需要對它們進行排序。對於排序,我不能執行字符串排序。所以即時通訊將其轉換爲日期對象。然後使用自定義排序執行排序,然後在試圖打印最新日期時,其格式將變爲「Thu Dec 09 04:39:38 IST 2010」。那是我面臨的問題。現在解決了。 – 2012-02-11 07:44:09