- ベストアンサー
時間のフォーマット
数値を時間(HH:MM:SSやAM/PM HH:MM:SS)にフォーマットしたいのですが、どのようにコーディングすればよいのでしょうか? SimpleDateFormatクラスを使用して試みているのですが、 どうしてもできません・・・ 例)131214 → PM 1:12:14
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
あ、フォーマットの大文字、小文字の違いっぽ。
その他の回答 (4)
- ProKaseifu
- ベストアンサー率51% (98/192)
SimpleDateFormatのフォーマット書いてる部分をよーくみれば間違ってるところに気づくはず。 言語やDBの種類でも書き方変わるので注意。
お礼
ありがとうございました。 解決できました。助かりました(*^_^*)
- ProKaseifu
- ベストアンサー率51% (98/192)
import java.util.*; import java.text.SimpleDateFormat; class DateFormatTest { public static void main(String args[]){ String format_str = "HH:MM:SS"; Calendar cal = Calendar.getInstance(); SimpleDateFormat sdf = new SimpleDateFormat(format_str, Locale.JAPAN); System.out.println(sdf.format(cal.getTime())); System.out.println(sdf.format(cal.getTimeInMillis())); } } これで結果同じでしたけど、引数とかほかの部分が間違っているのかも?
お礼
ご回答ありがとうございます。 結果同じでしたか・・・ Calendarの指定方法が間違っているのでしょうか・・・ int jikan = 123456; cal.set(Calendar.HOUR_OF_DAY, Integer.parseInt(df.format(jikan).substring(0,2))); cal.set(Calendar.MINUTE, Integer.parseInt(df.format(jikan).substring(2,4))); cal.set(Calendar.SECOND, Integer.parseInt(df.format(jikan).substring(4,6))); cal.set(Calendar.MILLISECOND, 0); cal.getTimeInMillis()の結果が、 1220585696000 となっています。
- ProKaseifu
- ベストアンサー率51% (98/192)
基本的な部分が理解できていない気がするので。 ヒント 1.SimpleDateFormat.formatの引数はなーんだ? 2.1の引数のオブジェクトを生成するにはどうしたらいい?
お礼
ご回答ありがとうございます。 1.SimpleDateFormatクラスのコンストラクタの引数は、 フォーマットしたいパターンとLocaleクラスでは無いのでしょうか? それで、HH:MM:SSとLocale.JAPANを指定しました。 2.Localeクラスを作成する方法になるのでしょうか? すみません。初心者なもので、宜しくお願い致します。
- SAYKA
- ベストアンサー率34% (944/2776)
じゃぁまずその試みてうまくいかなかったソースを提示しようね だって今のままだと丸投げだし。
お礼
失礼しました。 そうですよね・・・ 下のようなコードをやっているのですが、 jikanには、123456と値が入っています。 戻り値のjikanHenshuの変数を見てみたのですが、 12:09:00 となってしまいます。 12:34:56 になって欲しいのですが、どのように書けば良いか分かりません。 アドバイス頂ければと思います。 public static final String format(int ketasu, int jikan, int hyoki, int dspType, int zeroSuppress, int kugiriType) { String jikanHenshu = ""; String format_str = ""; DecimalFormat df = new DecimalFormat("000000"); Calendar cal = Calendar.getInstance(); // 24h表記の場合 if (hyoki == HOYKI_24H){ format_str = "HH:MM:SS"; } // 12h表記:AM/PM else if (hyoki == HOYKI_12H_ALPHABET){ format_str = "a H:MM:SS"; } // 12h表記:午前/午後 else{ format_str = "a H:MM:SS"; } SimpleDateFormat sdf = new SimpleDateFormat(format_str, Locale.JAPAN); cal.set(Calendar.HOUR_OF_DAY, Integer.parseInt(df.format(jikan).substring(0,2))); cal.set(Calendar.MINUTE, Integer.parseInt(df.format(jikan).substring(2,4))); cal.set(Calendar.SECOND, Integer.parseInt(df.format(jikan).substring(4,6))); cal.set(Calendar.MILLISECOND, 0); // Date date = cal.getTime(); jikanHenshu = sdf.format(cal.getTimeInMillis()); return jikanHenshu; } }
お礼
hh:mm:ss にするといいんでしょうか? 試してみます。