• ベストアンサー

yyyymmddからyyyy/mm/ddへの変換

いつもお世話になっております。 Aと言う変数にはyyyymmddの値が入っていて Aをyyyy/mm/ddにしてBの変数に入れたい場合の処理がわかりません。 調べたところ、SimpleDateFormatクラスと言うものを使えばよいと言うことが判明しました。 しかし、今まで使ったことがないのでよくわかりません。 変数Aと変数BはどちらもString型です。 ご教授お願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • PecoPlus
  • ベストアンサー率76% (144/188)
回答No.1

 こんにちは。  本当に変数aの中の文字列が厳密にyyyyMMddの形式のなっているのなら、普通に String b = a.substring(0, 4) + "/" + a.substring(4, 6) + "/" + a.substring(6, 8);  これでいいと思いますが、いったんDate型にする必要があったり、ちゃんと日付として認識できるか確かめる必要がある場合は、 String a = "20051029"; SimpleDateFormat formatter = (SimpleDateFormat)DateFormat.getDateInstance(); formatter.applyPattern("yyyyMMdd"); try {   Date date = formatter.parse(a);   formatter.applyPattern("yyyy/MM/dd");   String b = formatter.format(date);   System.out.println(b); } catch (ParseException ex) {   System.out.println("解析失敗"); }  こんな感じでいいんじゃないでしょうか。

hisajiro
質問者

お礼

ありがとうございました。 おかげで完成しました。

その他の回答 (1)

回答No.2

PecoPlusさんとほとんど一緒ですけど。 明示的な例外処理をしなくてすんでいる点が主な違いです。 import java.text.ParsePosition; import java.text.SimpleDateFormat; import java.util.Date; public class tst { /** * @param args */ public static void main(String[] args) { SimpleDateFormat formatter1 = new SimpleDateFormat("yyyyMMdd"); SimpleDateFormat formatter2 = new SimpleDateFormat("yyyy/MM/dd"); Date date = formatter1.parse("20051030", new ParsePosition(0)); String dateString = formatter2.format(date); System.out.println(dateString); } }

hisajiro
質問者

お礼

ありがとうございました。 おかげで完成しました。

関連するQ&A