• ベストアンサー

時間のフォーマット

数値を時間(HH:MM:SSやAM/PM HH:MM:SS)にフォーマットしたいのですが、どのようにコーディングすればよいのでしょうか? SimpleDateFormatクラスを使用して試みているのですが、 どうしてもできません・・・ 例)131214 → PM 1:12:14

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

  • ベストアンサー
回答No.4

あ、フォーマットの大文字、小文字の違いっぽ。

smiyamoto777
質問者

お礼

hh:mm:ss にするといいんでしょうか? 試してみます。

その他の回答 (4)

回答No.5

SimpleDateFormatのフォーマット書いてる部分をよーくみれば間違ってるところに気づくはず。 言語やDBの種類でも書き方変わるので注意。

参考URL:
http://sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ja/api/java/text/SimpleDateFormat.html
smiyamoto777
質問者

お礼

ありがとうございました。 解決できました。助かりました(*^_^*)

回答No.3

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())); } } これで結果同じでしたけど、引数とかほかの部分が間違っているのかも?

smiyamoto777
質問者

お礼

ご回答ありがとうございます。 結果同じでしたか・・・ 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 となっています。

回答No.2

基本的な部分が理解できていない気がするので。 ヒント 1.SimpleDateFormat.formatの引数はなーんだ? 2.1の引数のオブジェクトを生成するにはどうしたらいい?

smiyamoto777
質問者

お礼

ご回答ありがとうございます。 1.SimpleDateFormatクラスのコンストラクタの引数は、   フォーマットしたいパターンとLocaleクラスでは無いのでしょうか?   それで、HH:MM:SSとLocale.JAPANを指定しました。    2.Localeクラスを作成する方法になるのでしょうか? すみません。初心者なもので、宜しくお願い致します。

  • SAYKA
  • ベストアンサー率34% (944/2776)
回答No.1

じゃぁまずその試みてうまくいかなかったソースを提示しようね だって今のままだと丸投げだし。

smiyamoto777
質問者

お礼

失礼しました。 そうですよね・・・ 下のようなコードをやっているのですが、 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; } }