- ベストアンサー
yyyymmddからyyyy/mm/ddへの変換
いつもお世話になっております。 Aと言う変数にはyyyymmddの値が入っていて Aをyyyy/mm/ddにしてBの変数に入れたい場合の処理がわかりません。 調べたところ、SimpleDateFormatクラスと言うものを使えばよいと言うことが判明しました。 しかし、今まで使ったことがないのでよくわかりません。 変数Aと変数BはどちらもString型です。 ご教授お願い致します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 本当に変数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("解析失敗"); } こんな感じでいいんじゃないでしょうか。
その他の回答 (1)
- arakororin
- ベストアンサー率39% (80/205)
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); } }
お礼
ありがとうございました。 おかげで完成しました。
お礼
ありがとうございました。 おかげで完成しました。