Строка синтаксического анализа до настоящего времени с другим форматом в Java

Вы должны предоставить 4 даты.

Первые два для создания между и вторые два для обновления между:

public interface OrderRepository
    extends PagingAndSortingRepository<Order, String>, QuerydslPredicateExecutor<Order> {
  public Page<Order> findByCreatedBetweenOrUpdatedBetween(
           Date startDateCreated, Date endDateCreated
         , Date startDateUpdated, Date endDateUpdated
         , Pageable pageRequest);
}
86
задан Community 1 October 2014 в 00:49
поделиться

5 ответов

Взгляните на SimpleDateFormat . Код выглядит примерно так:

SimpleDateFormat fromUser = new SimpleDateFormat("dd/MM/yyyy");
SimpleDateFormat myFormat = new SimpleDateFormat("yyyy-MM-dd");

try {

    String reformattedStr = myFormat.format(fromUser.parse(inputString));
} catch (ParseException e) {
    e.printStackTrace();
}
175
ответ дан 5 November 2019 в 05:39
поделиться

Предположим, что у Вас есть строка как это:

String mDate="2019-09-17T10:56:07.827088"

Теперь мы хотим изменить этот String формат отдельная дата и время в [1 122] Java и Kotlin.

JAVA:

у нас есть метод для извлечения дата :

public String getDate() {
    try {
        DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS", Locale.US);
        Date date = dateFormat.parse(mDate);
        dateFormat = new SimpleDateFormat("MM/dd/yyyy", Locale.US);
        return dateFormat.format(date);
    } catch (ParseException e) {
        e.printStackTrace();
    }
    return null;
}

Return это: у 09/17/2019

И нас есть метод для извлечения время :

public String getTime() {

    try {
        DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS", Locale.US);
        Date date = dateFormat.parse(mCreatedAt);
        dateFormat = new SimpleDateFormat("h:mm a", Locale.US);
        return dateFormat.format(date);
    } catch (ParseException e) {
        e.printStackTrace();
    }
    return null;
}

Return это: 10:56

KOTLIN:

у нас есть функция для извлечения дата :

fun getDate(): String? {

    var dateFormat = SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS", Locale.US)
    val date = dateFormat.parse(mDate!!)
    dateFormat = SimpleDateFormat("MM/dd/yyyy", Locale.US)
    return dateFormat.format(date!!)
}

Return это: у 09/17/2019

И нас есть метод для извлечения время :

fun getTime(): String {

    var dateFormat = SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS", Locale.US)
    val time = dateFormat.parse(mDate!!)
    dateFormat = SimpleDateFormat("h:mm a", Locale.US)
    return dateFormat.format(time!!)
}

Return это: 10:56

0
ответ дан 5 November 2019 в 05:39
поделиться

Use the SimpleDateFormat class:

private Date parseDate(String date, String format) throws ParseException
{
    SimpleDateFormat formatter = new SimpleDateFormat(format);
    return formatter.parse(date);
}

Usage:

Date date = parseDate("19/05/2009", "dd/MM/yyyy");

For efficiency, you would want to store your formatters in a hashmap. The hashmap is a static member of your util class.

private static Map<String, SimpleDateFormat> hashFormatters = new HashMap<String, SimpleDateFormat>();

public static Date parseDate(String date, String format) throws ParseException
{
    SimpleDateFormat formatter = hashFormatters.get(format);

    if (formatter == null)
    {
        formatter = new SimpleDateFormat(format);
        hashFormatters.put(format, formatter);
    }

    return formatter.parse(date);
}
12
ответ дан 5 November 2019 в 05:39
поделиться

Найдите в javadocs java.text.SimpleDateFormat Он описывает все, что вам нужно.

5
ответ дан 5 November 2019 в 05:39
поделиться

While SimpleDateFormat will indeed work for your needs, additionally you might want to check out Joda Time, which is apparently the basis for the redone Date library in Java 7. While I haven't used it a lot, I've heard nothing but good things about it and if your manipulating dates extensively in your projects it would probably be worth looking into.

3
ответ дан 5 November 2019 в 05:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: