Android:当我将小时和分钟作为int时,以正确的格式显示时间

时间:2017-08-25 21:36:59

标签: android datetimepicker timepicker

我从TimePickerDialog中得到小时和分钟:

FragmentA

我想在其他地方展示这个时间。我的方法是使用

检查12h或24h格式的用户设置
EventBus.getDefault().post(new BusCategories(mUploadProducts.getCategories()));

然后手动构建时间文本。

我的问题:有没有更好的方法呢?

2 个答案:

答案 0 :(得分:2)

您可以像这样使用SimpleDateFormat 24小时:

SimpleDateFormat dateFormat = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss);

或将HH更改为hh以获得12小时格式:

SimpleDateFormat dateFormat = new SimpleDateFormat("dd.MM.yyyy hh:mm:ss);

然后使用:

dateFormat.format(yourDate);

您可以使用日历获取:

SimpleDateFormat dateFormat;
if (DateFormat.is24HourFormat()) {
    dateFormat = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss);
} else {
    dateFormat = new SimpleDateFormat("dd.MM.yyyy hh:mm:ss);
}
Calendar c = new Calendar.getInstance();
c.set(Calendar.HOUR, yourIntHour); // Or HOUR_OF_DAY
c.set(Calendar.MINUTE, yourIntMinute);
Date d = c.getTime();
String dateResult = dateFormat.format(d);

您可以使用HOUR_OF_DAY代替HOUR: (soruce:javadoc)

  

public static final int HOUR

     

获取和设置的字段编号,表示上午或   下午。小时用于12小时制(0 - 11)。中午和   午夜由0表示,而不是由12表示。例如,在10:04:15.250 PM   小时是10。

     

public static final int HOUR_OF_DAY

     

获取和设置的字段编号,表示当天的小时。   HOUR_OF_DAY用于24小时制。例如,在下午10:04:15.250   HOUR_OF_DAY是22。

答案 1 :(得分:0)

您可以使用<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <pre id="result"></pre>

强制时间选择器为12小时选择器
timePicker.setIs24HourView(boolean)