7

重複の可能性:
Android で AM/PM 形式で時刻を表示する

時間を取得して、次を使用して文字列に変換できます。

public static final String TIME_FORMAT = "h:mm a";
       SimpleDateFormat dateTimeFormat = new SimpleDateFormat(TIME_FORMAT);

String getstring = dateTimeFormat.format(when.gettime();

しかし、それから午前/午後を取得し、必要に応じて文字列に変換するにはどうすればよいですか?

4

3 に答える 3

18

これを試して

Calendar now = Calendar.getInstance();
int a = now.get(Calendar.AM_PM);
if(a == Calendar.AM)
   System.out.println("AM"+now.get(Calendar.HOUR));
于 2012-07-12T01:41:43.270 に答える
2

これはうまくいくはずです:

private TimePickerDialog.OnTimeSetListener mTimeSetListener =
 new TimePickerDialog.OnTimeSetListener()

{

public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
TextView datehid = (TextView)findViewById(R.id.timehidden);
if(hourOfDay>12)
{

    datehid.setText(String.valueOf(hourOfDay-12)+ ":"+(String.valueOf(minute)+"pm"));
}
if(hourOfDay==12)
{
    datehid.setText("12"+ ":"+(String.valueOf(minute)+"pm"));
}
if(hourOfDay<12)
{
    datehid.setText(String.valueOf(hourOfDay)+ ":"+(String.valueOf(minute)+"am"));
}
}
};

以前の質問で見つかりました。

于 2012-07-12T01:04:01.667 に答える
1

コードから、Date オブジェクトを使用しているように見えます。可能であれば、代わりに Calendar オブジェクトを使用することをお勧めします。getTime()必要に応じて、Calendar のメソッドを使用して Calendar オブジェクトから Date オブジェクトを取得できます。

Calendar オブジェクトがある場合は、次の操作を実行できます。

Calendar cal = ...;
String ampm = DateUtils.getAMPMString(cal.get(Calendar.AM_PM));

DateUtilsAndroid フレームワークの一部であり、API レベル 3 まで利用できます getAMPMString()。AM/PM のローカライズされたバージョンを返します。Android デベロッパー サイトの ドキュメントを参照してください。

使用可能な Cal​​endar オブジェクトがない場合は、date オブジェクトから作成できます。

Date date = ...;
Calendar cal = Calendar.getInstance();
cal.setTime(date);

ただし、Calendar は負荷が高いため、Calendar オブジェクトを作成して破棄するよりも直接操作する方がよいでしょう。

于 2012-07-12T01:55:29.483 に答える