好きな和訳タイトルを教えてください

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

A 回答 (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("解析失敗");
}

 こんな感じでいいんじゃないでしょうか。
    • good
    • 2
この回答へのお礼

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

お礼日時:2005/10/30 18:26

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);

}
}
    • good
    • 1
この回答へのお礼

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

お礼日時:2005/10/30 18:29

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報