Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaGSON日期转换器:如何将午夜改为上午12:00_Java_Json_Date_Gson - Fatal编程技术网

JavaGSON日期转换器:如何将午夜改为上午12:00

JavaGSON日期转换器:如何将午夜改为上午12:00,java,json,date,gson,Java,Json,Date,Gson,我使用GSON获取包含不同数据的Json。一切正常,但当用户键入00:30:00AM为午夜半时,它将转换为12:30:00AM。我想把它定在早上00:30:00。 是否有一种方法可以在不更改日期转换中的任何其他内容的情况下执行此操作?从gson builder创建gson对象时设置日期格式 Gson gson = new GsonBuilder().setDateFormat("HH:mm:ss").create(); 我本想说服GSON给我想要的格式,但很抱歉,我不知道GSON所以不能告诉你

我使用GSON获取包含不同数据的Json。一切正常,但当用户键入00:30:00AM为午夜半时,它将转换为12:30:00AM。我想把它定在早上00:30:00。
是否有一种方法可以在不更改日期转换中的任何其他内容的情况下执行此操作?

从gson builder创建gson对象时设置日期格式

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

我本想说服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上午


格式模式字母hh小写和KK大写都表示上午或下午的小时数,但前者从01到12,后者从00到11,因此为您提供了所需的小时数,以防GSON的小时数恰好是12。

我想您没有明白我的问题。或者我没有得到你的答案,但我不明白setDateFormatHH:mm会如何让我得到凌晨00:30:00而不是凌晨12:30:00?@Jean你的问题要求的是糟糕的答案,因为你没有发布任何代码让我们理解、复制和修复问题。张贴一个完整的最小的例子再现问题。添加ss秒。只是想知道为什么你需要AM,而时间在00-23。原始代码不是我的。这就是为什么我希望尽量少接触生成的Json。Json从不在12-24小时内发送。但是使用这个Json的应用程序会生成00-24小时。这个答案会如何处理,比如说,下午1:15:00?GSON会以这种格式将时间作为字符串提供给你吗?我学习了AM/PM系统,顺便说一句,12:30 AM对于午夜半是正确的。是的,它是字符串格式。我需要把从午夜到凌晨1点的所有时间改成00:00:{正确的一分钟}:00