私はこのような文字列を持っています:
Mon, 14 May 2012 13:56:38 GMT
今、私は日付だけが欲しい、すなわち14 May 2012
そのために何をする必要がありますか?
私はこのような文字列を持っています:
Mon, 14 May 2012 13:56:38 GMT
今、私は日付だけが欲しい、すなわち14 May 2012
そのために何をする必要がありますか?
それを行う適切な方法は、それをオブジェクトに解析し、Date
この日付オブジェクトを希望どおりにフォーマットすることです。
DateFormat inputDF = new SimpleDateFormat("EEE, d MMM yyyy H:m:s z");
DateFormat outputDF = new SimpleDateFormat("d MMM yyyy");
String input = "Mon, 14 May 2012 13:56:38 GMT";
Date date = inputDF.parse(input);
String output = outputDF.format(date);
System.out.println(output);
出力:
14 May 2012
このコードは
文字列の分割、固定インデックスの部分文字列、または正規表現に依存するソリューションよりも優れています。
オブジェクトを提供する、をparse()
使用して文字列を作成してみませんか。これをに与えると、など、必要な任意のフィールドにクエリを実行できます。DateFormat
Date
Date
Calendar
get(Calendar.DAY_OF_MONTH)
このようなもの...
SimpleDateFormat myDateFormat = new SimpleDateFormat("EEE, d MMM yyyy H:m:s z");
Date myDate = myDateFormat.parse(inputString);
Calendar myCalendar = Calendar.getInstance();
myCalendar.setTime(myDate);
String outputDate = myCalendar.get(Calendar.DAY_OF_MONTH) + " " +
myCalendar.get(Calendar.MONTH) + " " +
myCalendar.get(Calendar.YEAR);
書くのに少し時間がかかるかもしれませんが、少なくとも、Calendar
必要なフィールドを簡単に提供できるようになります(たとえば、フィールド値の1つを使用して何らかの処理を実行する場合)。また、計算や他の多くの目的にも使用できます。それはあなたがそれを持った後の日付であなたが何をしたいかに本当に依存します。
あなたはこれを使うことができます:
String st = "Mon, 14 May 2012 13:56:38 GMT";
for(int i=0;i<=st.length();i++){
if (st.charAt(i)==':') {
index=i;
index=index-2;
break;
}
}
String onlyDate=st.substring(4,index).trim();