Пользовательская строка даты и времени из миллисекунд - PullRequest
7 голосов
/ 24 июня 2011

У меня есть время в миллисекундах, например.1308700800000;Мне нужно преобразовать его во что-то вроде Jun 9'11 at 02:15 PM.

Я пытался использовать

SimpleDateFormat format = new SimpleDateFormat("MMM D'\''YY");

, но получаю исключение:

Caused by: java.lang.IllegalArgumentException: Unterminated quote

Любая помощь будет весьмаоценены.

Ответы [ 3 ]

13 голосов
/ 24 июня 2011

Из сообщения об исключении видно, что проблема будет связана с вашей строкой формата, в частности, с частью одинарных кавычек.

Глядя на документацию , мы видим, что:

Текст можно заключать в кавычки ('), чтобы избежать интерпретации. «» обозначает одну кавычку.

Таким образом, я считаю, что ваш формат (для той части даты, как в вашем существующем примере) может быть таким простым, как

new SimpleDateFormat("MMM d''yy")

Не должно быть необходимости задействовать обратную косую черту.

4 голосов
/ 24 июня 2011

попробуй:

import java.util.*;
import java.text.*;

class D {
    public static void main( String ... args )  {
        System.out.println( 
            new SimpleDateFormat("MMM dd''yy")
            .format( new Date( 1308700800000L  ))
        );
    }
}

отпечатков:

Jun 21'11
2 голосов
/ 24 июня 2011

Анджей прав, но заглавные буквы D и Y вам не подойдут. Прочитайте документацию, но это должно работать:

SimpleDateFormat format = new SimpleDateFormat("MMM d''yy 'at' HH:mm:ss z")
...