【发布时间】:2017-03-27 07:16:02
【问题描述】:
我有一个 TimePickerDialog,它可以让用户选择一个时间。 TimePickerDialog 有一个onTimeSet 方法,当用户完成时间选择时会调用该方法。
我将参数传递给第二种方法setTime(int hour, int minute),它保存值并显示格式化的时间。
这是该方法的代码sn-p:
java.text.DateFormat dateFormatter =
java.text.DateFormat.getTimeInstance(java.text.DateFormat.SHORT, Locale.getDefault());
DateTime dt = new DateTime();
dt = dt.hourOfDay().setCopy(hour);
dt = dt.minuteOfHour().setCopy(minute);
String text = dateFormatter.format(dt.toDate());
问题在于(有时,并非总是)小时值偏离一小时甚至两个小时。我认为问题的原因与时区有关,但我不知道确切的原因是什么。我还认为问题是由 Joda DateTime 对象引起的,因为在我实施 Joda 时间之前我没有任何问题,因为它也可以在休息一小时后保存。 有什么想法会发生什么/如何解决?
【问题讨论】: