формат sql datetime в java андроид студии - PullRequest
0 голосов
/ 22 февраля 2019

Как мне отформатировать эту форму DateTime SQL с 2019-02-18T06: 30: 38.9933333 по 18.02.19, 6:30 в студии android, используя java

Я уже пробовал Simpledatetime, ничего не происходит.`

String startDate="2019-02-18T06:30:38.9933333"; // Input String
        SimpleDateFormat sdf1 = new SimpleDateFormat("MM-dd-yyyy h:mm tt"); 

        java.util.Date date = sdf1.parse(startDate); 
        java.sql.Date sqlStartDate = new java.sql.Date(date.getTime());

нужна помощь .. спасибо.

Ответы [ 3 ]

0 голосов
/ 22 февраля 2019

Может быть, вы используете java.time.LocalDateTime, если вы работаете с Java или выше:

String startDate = "2019-02-18T06:30:38.9933333"; // Input String
LocalDateTime localDateTime = LocalDateTime.parse(startDate);
0 голосов
/ 22 февраля 2019

java.time, ThreeTenABP и встроенный локализованный формат

    DateTimeFormatter formatter
            = DateTimeFormatter.ofLocalizedDateTime(FormatStyle.SHORT)
                    .withLocale(Locale.US);

    String startDate = "2019-02-18T06:30:38.9933333"; // Input String
    LocalDateTime dateTime = LocalDateTime.parse(startDate);
    System.out.println(dateTime.format(formatter));

Вывод:

2/18/19 6:30 AM

Еще лучше, чем выше, получить LocalDateTime из вашей базы данных, или, если это пока невозможно, тогда Timestamp, который вы конвертируете следующим образом:

    LocalDateTime dateTime = DateTimeUtils.toLocalDateTime(timestampFromDatabase);

Или, если используете Java8 или позднее:

    LocalDateTime dateTime = timestampFromDatabase.toLocalDateTime();

Форматирование такое же, как и раньше.

Как правило, Java знает лучший формат для конкретной аудитории лучше, чем вы.Использование встроенного формата также избавляет вас от подверженной ошибкам задачи написания строки шаблона формата.

В первом фрагменте я использую тот факт, что ваша входная строка соответствует ISO 8601, международному стандартному формату.что классы java.time анализируют (и также печатают) как значения по умолчанию, то есть без какого-либо явного средства форматирования.

Классы SimpleDateFormat, java.util.Date и java.sql.Date все плохо разработаны и давно устарели,Вместо этого я использую java.time, современный API даты и времени Java.

Вопрос: Могу ли я использовать java.time на Android?

Да, java.time прекрасно работает на старых и более новых Androidустройства.Для этого требуется как минимум Java 6 .

  • В Java 8 и более поздних версиях и на более новых устройствах Android (от уровня API 26) современный API поставляется встроенным.
  • В Java 6 и 7 получают ThreeTen Backport, бэкпорт современных классов (ThreeTen для JSR 310; см. Ссылки внизу).
  • На (более старых) Android используется версия ThreeTen для AndroidBackport.Это называется ThreeTenABP.И убедитесь, что вы импортируете классы даты и времени из org.threeten.bp с подпакетами.

Ссылки

0 голосов
/ 22 февраля 2019

Используйте формат:

yyyy-MM-dd'T'HH:mm:ss.SSSSSSS

Для получения дополнительной информации: https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html

...