2010-12-13 3 views
2

у меня есть андроид timepicker, и мне нужно, чтобы получить свое время в Java коде, и преобразовать его в строку с этим appereance: «08:00:00» (часы, мин, сек)Как я могу получить время TimePicker в этом формате -> «08:00:00»?

может кто-то помочь мне сделать это легко?

пример кода будет оценено

ответ

7
SimpleDateFormat format = new SimpleDateFormat("HH:mm:ss"); 
String formatted = format.format(date); // date is a long in milliseconds 
+1

не дата, это время: S – NullPointerException

+0

также он не работает, то это дает мне незаконное исключение аргумента, потому что я должен передать timepicker в format.format(); и вы передаете дату: S – NullPointerException

+0

Предполагаю, вы знаете, как получить время в миллисекундах от сборщика, а затем просто использовать форматирование, чтобы получить строку. Вы можете заменить «date» на «time» в фрагменте кода - ничего не изменится, так как ожидается, что ожидается как минимум миллисекунды. –

12
TimePicker t = new TimePicker(this); 

String formattedTime = ""; 
int hour = t.getCurrentHour(); 
String sHour = "00"; 
if(hour < 10){ 
sHour = "0"+hour; 
} else { 
sHour = String.valueOf(hour); 
} 

int minute = t.getCurrentMinute(); 
String sMinute = "00"; 
if(minute < 10){ 
sMinute = "0"+minute; 
} else { 
sMinute = String.valueOf(minute); 
} 

formattedTime = sHour+":"+sMinute+":"+"00"; // Sorry you can't get seconds from a TimePicker 
7

TimePicker имеет 2 доступные методы, чтобы получить установленное время. getCurrentHour и getCurrentMinute.

Так что вывод этого как строки не должен быть слишком сложным.

String s; 
Format formatter; 
Calendar calendar = Calendar.getInstance(); 
// tp = TimePicker 
calendar.set(Calendar.HOUR_OF_DAY, tp.getCurrentHour()); 
calendar.set(Calendar.MINUTE, tp.setCurrentMinutes()); 
calendar.clear(Calendar.SECOND); //reset seconds to zero 

formatter = new SimpleDateFormat("HH:mm:ss"); 
s = formatter.format(calendar.getTime()); // 08:00:00 

Кстати, в нижнем регистре hh получите вам 12-часовые часы.

+0

Я просто понял, что я задал формат ': ss', когда вам, вероятно, понадобится' 00', а не текущие секунды. Вы можете изменить формат на «HH: mm: 00» ' –

2

Просто используйте SimpleDateFormat для форматирования даты и времени.

Calendar cal=new Calendar(); 
SimpleDateFormat frmDate=SimpleDateFormat("dd-MM-yyyy"); 
String s=frmDate.format(cal.getTime()); 
SimpleDateFormat frmTime=SimpleDateFormat("HH:MM:SS"); 
String t=frmTime.formate(cal.getTime()); 

http://developer.android.com/reference/java/text/SimpleDateFormat.html http://developer.android.com/reference/java/text/DateFormat.html