JAVA GSON日期转换器:如何将午夜设为00:00 AM而不是12:00 AM

时间:2018-11-26 09:05:46

标签: java json date gson

我使用GSON获取具有不同数据的Json。一切正常,但是当用户在午夜半时键入00:30:00 AM时,它将转换为12:30:00 AM。我想在00:30:00 AM收到。 有没有办法在日期转换中不做任何更改?

2 个答案:

答案 0 :(得分:1)

本来我想说服GSON给我想要的格式,但是对不起,我不知道GSON,所以无法告诉您是否可行。但是,如果不是这样,则在知道如何重新格式化得到的字符串时并不困难:

    DateTimeFormatter gsonTimeFormatter = DateTimeFormatter.ofPattern("hh:mm:ss a");
    DateTimeFormatter desiredTineFormatter = DateTimeFormatter.ofPattern("KK:mm:ss a");
    String timeStringFromGson = "12:30:00 AM";
    LocalTime time = LocalTime.parse(timeStringFromGson, gsonTimeFormatter);
    String formattedTime = time.format(desiredTineFormatter);
    System.out.println(formattedTime);

此代码段的输出为:

  

00:30:00 AM

格式模式字母hh(小写)和KK(大写)均表示AM或PM中的小时,但前者从01到12,后者从00到11,因此您需要的小时数,以防GSON的小时数是12。

答案 1 :(得分:0)

在通过Gson构建器创建gson对象时设置日期格式。

Gson gson = new GsonBuilder().setDateFormat("HH:mm:ss").create();