Что является более коротким Java-кодом, эквивалентным Now.ToString ("yyyy-MM-dd") в VB.Net? - PullRequest
0 голосов
/ 05 декабря 2018

Я конвертирую программу VB.Net в Java, и мне нужно преобразовать следующую строку

Dim s = Now.ToString("yyyy-MM-dd")

Я написал следующий код Java

Date d = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String s = sdf.format(d);

, на котором я могу писатьодна строка

String s = new SimpleDateFormat("yyyy-MM-dd").format(new Date());

Что такое более короткий код в Java, который работает в Java 6 и более поздних версиях?

Существуют ли какие-либо коды Java, которые генерируют строку формата даты при вызовеметод объекта Date (пример: Date.format("yyyy-MM-dd"))?

Ответы [ 2 ]

0 голосов
/ 05 декабря 2018

Каков более короткий код в Java, который работает в Java 6 и более поздних версиях?

Я хотел бы ответить на часть «Java 6 и более поздних версий»: код в ответе де Хара делает.Моя версия будет

    String now = LocalDate.now(ZoneId.systemDefault()).toString();

или

    DateTimeFormatter customFormatter = new DateTimeFormatter.ofPattern("uuuu-MM-dd");
    String now = LocalDate.now(ZoneId.systemDefault()).format(customFormatter);
  • В Java 8 и более поздних версиях и на более новых устройствах Android (от уровня API 26) java.time, современный API, поставляется встроенным.
  • В Java 6 и 7 получите ThreeTen Backport, бэкпорт новых классов (ThreeTen для JSR 310; см. ссылки внизу).
  • On (старше) Android использует Android-версию ThreeTen Backport.Это называется ThreeTenABP.И убедитесь, что вы импортируете классы даты и времени из org.threeten.bp с подпакетами.

Ссылки

0 голосов
/ 05 декабря 2018

Начиная с Java 8, существует java.time с несколькими полезными классами.

Если вы можете / можете использовать Java 8 или выше, то вы можете сделать следующее:

String now = LocalDate.now().format(DateTimeFormatter.ISO_LOCAL_DATE);

который будет выдавать 2018-12-05 сегодня в моем часовом поясе (может отличаться в вашем).

Вам просто нужно

import java.time.LocalDate;
import java.time.format.DateTimeFormatter;

, чтобы заставить его работать.Вы также можете применять пользовательские форматирования с

DateTimeFormatter customFormatter = new DateTimeFormatter.ofPattern("yyyy-MM-dd");
String now = LocalDate.now().format(customFormatter);
...