1つはFacebookから、2つ目はTwitterからの2つの日付があります。どうすればそれらを同じ形式に変換できますか。以下は私が取得している日付です
Facebook Date= 2012-07-05T13:17:13+0000 Twitter Date= Thu Jul 05 22:15:04 GMT+05:30 2012
次のように 2 つの両方を変換するにはどうすればよいですか: 05-Jul-2012 11:54:30 解決策を教えてください..ありがとう
SimpleDateFormat APIは、ここで大いに役立つはずです。
日付形式ごとに1つずつ、合計2つ作成する必要があります。次に、parse()
メソッドを使用してそれらをDate
オブジェクトに変換できます。
最後に、必要に応じて、このformat()
メソッドを使用して文字列に戻すことができます。
また、これはJava時間を使用しています。これはJODA時間よりも好ましくありませんが、目的に応じて機能する可能性があります。
これらの関数は、facebook と twitter の日付を好みの形式に変換するために機能しています。
Facebookの日付を変換する関数:
String old_date="2012-07-05T13:17:13+0000";
private String Convert_Facebook_Date(String old_date) {
SimpleDateFormat sdf = new SimpleDateFormat("dd-MMM-yyyy hh:mm:ss");
SimpleDateFormat old = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ");
sdf.setTimeZone(TimeZone.getDefault());
Date date = null;
try {
date = old.parse(old_date);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return sdf.format(date);
}
Twitterの日付を変換する関数:
String old_date="Thu Jul 05 22:15:04 GMT+05:30 2012";
private String Convert_Twitter_Date(String old_date) {
SimpleDateFormat sdf = new SimpleDateFormat("dd-MMM-yyyy hh:mm:ss");
SimpleDateFormat old = new SimpleDateFormat("EEE MMM dd HH:mm:ss ZZZZZ yyyy",Locale.ENGLISH);
old.setLenient(true);
Date date = null;
try {
date = old.parse(old_date);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return sdf.format(date);
}
両方の出力形式: 05-Jul-2012 11:54:30