2015-03-31 3 views
-2

Я хочу, чтобы получить 12 часов времени часов от milliseconds.I пытался следующим образомкак получить AM/PM, используя простой формат дату

public class GetTimeFormat{ 
    static SimpleDateFormat format; 
    public static String convertDate(String dateformat,Long date){ 
     format = new SimpleDateFormat(dateformat); 
     String formattedDate = format.format(date); 
     return formattedDate; 
    } 

public static void main(String args[]) 
{ 

    long cal=1386059340010l; 

    String dateString=convertDate("MMM dd,yyyy HH:mm:ss a", cal); 
    System.out.println(dateString); 

} 
} 

Соответствующая дата для вышеуказанных миллисекунд Tue Dec 03 13:59:00 IST 2013

Я подумал я форматированная дату как Dec 03,2013 1:59:00 PM

, но вместо этого я получаю Dec 03,2013 13:59:00 PM

нет необходимо для am/pm в 24-часовых часах и в 12-часовых часах am/pm требуется

Но по-моему, я получаю время в формате 24 часа + PM.

Может ли любое тело сказать мне, что здесь ошибка?

Другой вопрос, почему в ideone его показе Dec 03,2013 08:29:00 AM не только в ideone, но я проверил много онлайных компиляторов и где каждый его показ такие же, но по местному времени машины отличается (13:59)

+2

10 секунд просмотра ['SimpleDateFormat'] (http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html), показанного в разделе« Примеры »:« h: mm a "-> 12:08 PM' – JimmyB

ответ

-1

Использование hh вместо HH в формате даты. Так заменить "MMM dd,yyyy HH:mm:ss a" с "MMM dd,yyyy hh:mm:ss a"

1

Вы должны использовать нижний регистр h в шаблоне формата:

String dateString = convertDate("MMM dd,yyyy h:mm:ss a", cal); 

Вы можете увидеть here для полной ссылки шаблонов формата, в том числе на примере, который охватывает этот конкретный случай.

+0

Спасибо за ответ, можете ли вы ответить, почему он не работает в идеоне (вторая часть моего вопроса) – rocking

+0

Знаете ли вы о концепции отличия ['TimeZone'] (http://docs.oracle.com/javase/7/docs/api/java/util/TimeZone.html)? - Если вы явно не укажете TimeZone для использования, результат будет отображаться только в соответствии с часовым поясом по умолчанию, настроенным для * машины, на которой работает код *. – JimmyB