アプリ版:「スタンプのみでお礼する」機能のリリースについて

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

A 回答 (5件)

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

    • good
    • 0
この回答へのお礼

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

お礼日時:2008/09/05 16:20

SimpleDateFormatのフォーマット書いてる部分をよーくみれば間違ってるところに気づくはず。



言語やDBの種類でも書き方変わるので注意。

参考URL:http://sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ …
    • good
    • 0
この回答へのお礼

ありがとうございました。

解決できました。助かりました(*^_^*)

お礼日時:2008/09/05 16:28

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

これで結果同じでしたけど、引数とかほかの部分が間違っているのかも?
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

結果同じでしたか・・・

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
となっています。

お礼日時:2008/09/05 16:19

基本的な部分が理解できていない気がするので。



ヒント
1.SimpleDateFormat.formatの引数はなーんだ?

2.1の引数のオブジェクトを生成するにはどうしたらいい?
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

1.SimpleDateFormatクラスのコンストラクタの引数は、
  フォーマットしたいパターンとLocaleクラスでは無いのでしょうか?
  それで、HH:MM:SSとLocale.JAPANを指定しました。
  
2.Localeクラスを作成する方法になるのでしょうか?

すみません。初心者なもので、宜しくお願い致します。

お礼日時:2008/09/05 16:11

じゃぁまずその試みてうまくいかなかったソースを提示しようね


だって今のままだと丸投げだし。
    • good
    • 0
この回答へのお礼

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

お礼日時:2008/09/05 15:53

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