有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

JavaGSON如何始终在json中包含毫秒?

我正在构建一个Android应用程序,它可以与构建在其上的RESTAPI进行交互。净

如果SQL Server中的“我的表”中有两行具有以下日期时间值:

  • 2019-01-01 00:00:00.000
  • 2019-01-01 00:00:00.113

然后返回的json将具有以下值:

  • 2019-01-01T00:00:00
  • 2019-01-01T00:00:00.113

因此,我不知道在创建Gson实例时如何为setDateFormat提供模式

如果我使用GsonBuilder().setDateFormat("yyyy-MM-dd'T'HH:mm:ss"),那么我的gson可以在这两种情况下进行泛化,但它会丢失毫秒部分

如果我使用GsonBuilder().setDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS"),那么我的gson在第二种情况下不会丢失毫秒部分,但在处理第一种情况时会抛出异常

如何在两种情况下成功解析时间,但仍然达到毫秒?如能提供任何解决方案,将不胜感激。我不介意是服务器端还是客户端


共 (1) 个答案

  1. # 1 楼答案

    多亏了彼得,我自己找到了解决办法。彼得罗夫

    这是因为我将API配置为在WebApiConfig中以json格式而不是xml格式返回数据。反恐精英。所以我觉得我无法控制它是如何构建时间格式的。但我终于找到了。这是我的网页。cs文件:

    var json = config.Formatters.JsonFormatter;
    json.SerializerSettings.PreserveReferencesHandling = Newtonsoft.Json.PreserveReferencesHandling.Objects;
    json.SerializerSettings.DateFormatString = "yyyy-MM-dd'T'HH:mm:ss.fff";
    config.Formatters.Remove(config.Formatters.XmlFormatter);
    

    现在我的服务器总是包含毫秒,不管是什么

    就这样