Как разрешить JSON отправлять (и позже получать) только свойство "время" (а не дату / метку времени) ресурса - PullRequest
0 голосов
/ 04 августа 2020

Создание API для разрешения JSON POST «ресурса» с постоянством для бэкэнда.

Имеет одно из свойств, которое в основном является «временем» дня (формат 14:00, 17:00 и т. Д. c). Попытка изучить различные варианты передачи его как простой строки или текста (из остального клиента) ИЛИ должна иметь любой конкретный c формат «времени», простой для реализации api, чтобы принять его (простое сопоставление / анализ). Ищете предложения?

Пример Json:

{

   "name" : "Mark",
   "age" : 15,
   "cutOffTime": "2.00 PM" (????)
   ........

}

1 Ответ

1 голос
/ 04 августа 2020

Go для LocalTime

современный API даты и времени , который был впервые представлен с Java SE 8 и был дополнительно расширен в последующих выпусках, предоставляет богатый набор API для управления датой, временем и их форматированием. Ниже приведена демонстрация того же:

import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeFormatterBuilder;
import java.util.Locale;

public class Main {
    public static void main(String[] args) {
        // Test strings
        String[] strTimes = { "1:00", "01:00", "1:00 pm", "1:00 am", "01:00 am", "01:00 pm", "13:10", "8:9", "8:9 am" };

        // Define the formatter
        DateTimeFormatter inputFormatter = new DateTimeFormatterBuilder()
                                            .parseCaseInsensitive()
                                            .appendPattern("[h:m a][H:m]")
                                            .toFormatter(Locale.ENGLISH);

        DateTimeFormatter outputFormatter = DateTimeFormatter.ofPattern("HH:mm");

        for (String strTime : strTimes) {
            LocalTime time = LocalTime.parse(strTime, inputFormatter);

            // String to be displayed or saved into the database
            String formattedTime = time.format(outputFormatter);
            System.out.println(formattedTime);
        }
    }
}

Вывод:

01:00
01:00
13:00
01:00
01:00
13:00
13:10
08:09
08:09

Было подвержено ошибкам, а также было сложно сделать то же самое, используя устаревший API даты и времени. Для ваших требований я рекомендую вам использовать LocalTime (поэтому я выбрал LocalTime в демонстрации). Вы можете узнать больше о современном API даты и времени из Trail: Date Time

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...