JDM*_*JDM 51 android timepicker
我有一个将is24Hour设置为false的TimePickerDialog,因为我想向最终用户呈现更熟悉的12小时格式.设置小时,分钟和AM PM指示器并返回时间时,如何确定最终用户是选择了AM还是PM?
这就是我对听众的看法:
private TimePickerDialog.OnTimeSetListener mTimeSetListener =
new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view, int hourOfDay,
int minute) {
mHour = hourOfDay;
mMinute = minute;
// mIsAM = WHERE CAN I GET THIS VALUE
}
};
Run Code Online (Sandbox Code Playgroud)
Com*_*are 68
该hourOfDay
永远是24小时.如果您打开is24HourView
设置为的对话框false
,则用户无需处理24小时格式化的时间,但Android会在调用时将其转换为24小时onTimeSet()
.
Adi*_*lik 32
这对我有用:
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
String am_pm = "";
Calendar datetime = Calendar.getInstance();
datetime.set(Calendar.HOUR_OF_DAY, hourOfDay);
datetime.set(Calendar.MINUTE, minute);
if (datetime.get(Calendar.AM_PM) == Calendar.AM)
am_pm = "AM";
else if (datetime.get(Calendar.AM_PM) == Calendar.PM)
am_pm = "PM";
String strHrsToShow = (datetime.get(Calendar.HOUR) == 0) ?"12":datetime.get(Calendar.HOUR)+"";
((Button)getActivity().findViewById(R.id.btnEventStartTime)).setText( strHrsToShow+":"+datetime.get(Calendar.MINUTE)+" "+am_pm );
}
Run Code Online (Sandbox Code Playgroud)
joe*_*ves 13
我遇到了同样的问题.我的应用程序中有一个TimePicker,在您选择一个时间并按下一个按钮后,您将进入一个显示所选时间的屏幕.选择的"时间"是正确的,但有时AM/PM值与所选择的相反.我最后通过改变我为TimePicker中的"hrs"参数存储的内容来修复它.
private TimePickerDialog.OnTimeSetListener mTimeSetListener = new TimePickerDialog.OnTimeSetListener()
{
@Override
public void onTimeSet(TimePicker view, int hrs, int mins)
{
hour = hrs;
minute = mins;
c = Calendar.getInstance();
c.set(Calendar.HOUR_OF_DAY, hour);
//instead of c.set(Calendar.HOUR, hour);
c.set(Calendar.MINUTE, minute);
Run Code Online (Sandbox Code Playgroud)
现在,当我按下按钮进入下一个屏幕时,它正确显示了所选的正确AM/PM值.
Ami*_*irG 10
嗨,您可以使用自己的格式,如下所示:
String myFormat = "hh:mm a"; // your own format
SimpleDateFormat sdf = new SimpleDateFormat(myFormat, Locale.US);
String formated_time = sdf.format(calendar_time.getTime()); //format your time
Run Code Online (Sandbox Code Playgroud)
我发现"a"是代表AM-PM的格式化时间代码:http://www.tutorialspoint.com/java/java_date_time.htm
Dav*_*run 10
用户选择显示正确的HH:MM格式的整洁的Toast消息
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
String AM_PM = " AM";
String mm_precede = "";
if (hourOfDay >= 12) {
AM_PM = " PM";
if (hourOfDay >=13 && hourOfDay < 24) {
hourOfDay -= 12;
}
else {
hourOfDay = 12;
}
} else if (hourOfDay == 0) {
hourOfDay = 12;
}
if (minute < 10) {
mm_precede = "0";
}
Toast.makeText(mContext, "" + hourOfDay + ":" + mm_precede + minute + AM_PM, Toast.LENGTH_SHORT).show();
}
Run Code Online (Sandbox Code Playgroud)
试试这个简单的方法:
void openTimeFragment() {
TimePickerDialog mTimePicker;
final Calendar c = Calendar.getInstance();
int hour = c.get(Calendar.HOUR_OF_DAY);
int minute = c.get(Calendar.MINUTE);
mTimePicker = new TimePickerDialog(YourActivity.this, new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker timePicker, int selectedHour, int selectedMinute) {
String time = selectedHour + ":" + selectedMinute;
SimpleDateFormat fmt = new SimpleDateFormat("HH:mm");
Date date = null;
try {
date = fmt.parse(time );
} catch (ParseException e) {
e.printStackTrace();
}
SimpleDateFormat fmtOut = new SimpleDateFormat("hh:mm aa");
String formattedTime=fmtOut.format(date);
edtTextTime.setText(formattedTime);
}
}, hour, minute, false);//No 24 hour time
mTimePicker.setTitle("Select Time");
mTimePicker.show();
}
Run Code Online (Sandbox Code Playgroud)
private String getTime(int hr,int min) {
Calendar cal = Calendar.getInstance();
cal.set(Calendar.HOUR_OF_DAY,hr);
cal.set(Calendar.MINUTE,min);
Format formatter;
formatter = new SimpleDateFormat("h:mm a");
return formatter.format(cal.getTime());
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
51650 次 |
最近记录: |