2017-01-03 11 views
-1

Привет, у меня есть формат времени даты с век. Я пытался преобразовать его в строку с использованием формата даты в формате Joda, но я получаю ненужные данные при преобразовании. Я не уверен, почему это происходитПреобразование CCYYMMDDHHMMSSss в java с использованием формата времени в формате joda

Код

LocalDate date = LocalDate.now(); 
DateTimeFormatter fmt = DateTimeFormat.forPattern("CCYYMMDDHHMMSSsss"); 
String str = date.toString(fmt); 
System.out.println(str); 

это выход

20170103��0100��� 

но выход должен прийти как этот

20160620091223711 
+3

Я даже не использую время Джоды, и могу сказать, что строка шаблона ничем не отличается от правильной. Просмотрите [документацию] (http://www.joda.org/joda-time/apidocs/org/joda/time/format/DateTimeFormat.html). –

+0

Да, ваш шаблон совершенно не прав, см. Описание шаблона. Например, шаблоны обычно чувствительны к регистру. И почему вы думаете, что час, минута, секунда и доля секунды (что вы хотите ?!) имеют какой-то смысл, когда ваш ввод - это только календарная дата без временной части? –

+0

Кроме того, 'LocalDate.now()' возвращает дату на данный момент, я не уверен, почему вы ожидаете результат, который вы дали. – mohammedkhan

ответ

0

Если вы хотите, текущую дату и время, чтобы быть отформатирован, вы должны попробовать это:

DateTime dt = DateTime.now(); 
DateTimeFormatter fmt = DateTimeFormat.forPattern("CCYYMMddHHmmssSSS"); 
String str = fmt.print(dt); 
System.out.println(str); 

Здесь используется DateTime объект, шаблон в соответствии со спецификацией и способа печати в DateTimeFormatter используется.