如何更改 android 中的时区?
How do I change Time zone in android?
我有一个带时间选择器的编辑文本。当我单击编辑文本获取时间选择器对话框时。如果我 select 10:00 下午编辑文本应该显示 10:00 下午,但我收到 22:00 下午。我怎样才能改变这个?下面给出了我的编码部分..
protected void showTime()
{
TimePickerDialog tpd = new TimePickerDialog(this,
new TimePickerDialog.OnTimeSetListener()
{
@Override
public void onTimeSet(TimePicker view, int hourOfDay,
int minute)
{
hour=hourOfDay;
min=minute;
if(hourOfDay>12)
{
hourOfDay -= 12;
zone = "PM";
}
else
{
zone = "AM";
}
edtTime.setText(" "+pad(hour) + ":" + min+ " "+zone);
}
}, hour, min, true);
tpd.setTitle("Select Time");
tpd.show();
}
请注意,您只是将 hourOfDay
修改为 hourOfDay -= 12;
因此,您也需要在 setText()
调用中使用相同的变量,因为 hour
仍然引用到原始的 24 小时格式值。
@Override
public void onTimeSet(TimePicker view, int hourOfDay,
int minute)
{
hour=hourOfDay;
min=minute;
if(hourOfDay>12)
{
hourOfDay -= 12;
zone = "PM";
}
else
{
zone = "AM";
}
edtTime.setText(" "+pad(hourOfDay) + ":" + min+ " "+zone);
}
请使用 Java DateTime API 而不是使用数学将 24 小时格式(onTimeSet()
参数进来)转换为 AM/PM 一。否则边缘情况(如 00:00
)更难显示。以下是我建议您这样做的方法。
DateFormat df = new SimpleDateFormat("hh:mm a"); // [1-12]:[0-59] AM|PM
Calendar cal = Calendar.getInstance();
cal.set(Calendar.MINUTE, minute);
cal.set(Calendar.HOUR_OF_DAY, hourOfDay);
edtTime.setText(df.format(cal.getTime()));
查看 SimpleDateFormat 文档了解更多信息。
我有一个带时间选择器的编辑文本。当我单击编辑文本获取时间选择器对话框时。如果我 select 10:00 下午编辑文本应该显示 10:00 下午,但我收到 22:00 下午。我怎样才能改变这个?下面给出了我的编码部分..
protected void showTime()
{
TimePickerDialog tpd = new TimePickerDialog(this,
new TimePickerDialog.OnTimeSetListener()
{
@Override
public void onTimeSet(TimePicker view, int hourOfDay,
int minute)
{
hour=hourOfDay;
min=minute;
if(hourOfDay>12)
{
hourOfDay -= 12;
zone = "PM";
}
else
{
zone = "AM";
}
edtTime.setText(" "+pad(hour) + ":" + min+ " "+zone);
}
}, hour, min, true);
tpd.setTitle("Select Time");
tpd.show();
}
请注意,您只是将 hourOfDay
修改为 hourOfDay -= 12;
因此,您也需要在 setText()
调用中使用相同的变量,因为 hour
仍然引用到原始的 24 小时格式值。
@Override
public void onTimeSet(TimePicker view, int hourOfDay,
int minute)
{
hour=hourOfDay;
min=minute;
if(hourOfDay>12)
{
hourOfDay -= 12;
zone = "PM";
}
else
{
zone = "AM";
}
edtTime.setText(" "+pad(hourOfDay) + ":" + min+ " "+zone);
}
请使用 Java DateTime API 而不是使用数学将 24 小时格式(onTimeSet()
参数进来)转换为 AM/PM 一。否则边缘情况(如 00:00
)更难显示。以下是我建议您这样做的方法。
DateFormat df = new SimpleDateFormat("hh:mm a"); // [1-12]:[0-59] AM|PM
Calendar cal = Calendar.getInstance();
cal.set(Calendar.MINUTE, minute);
cal.set(Calendar.HOUR_OF_DAY, hourOfDay);
edtTime.setText(df.format(cal.getTime()));
查看 SimpleDateFormat 文档了解更多信息。