Java 需要org.threeten.bp.LocalDate以“格式”返回日期;YYYY-MM-DD“;
我正在使用Java 需要org.threeten.bp.LocalDate以“格式”返回日期;YYYY-MM-DD“;,java,date,spring-boot,yaml,swagger-2.0,Java,Date,Spring Boot,Yaml,Swagger 2.0,我正在使用yaml文件生成用于返回JSON响应的类 亚马尔 我正在使用swagger-codegen-maven-plugin生成以下类: <plugin> <groupId>io.swagger</groupId> <artifactId>swagger-codegen-maven-plugin</artifactId> <version>2.3.1</version> <
yaml
文件生成用于返回JSON
响应的类
亚马尔
我正在使用swagger-codegen-maven-plugin
生成以下类:
<plugin>
<groupId>io.swagger</groupId>
<artifactId>swagger-codegen-maven-plugin</artifactId>
<version>2.3.1</version>
<executions>
<execution>
<id>api-call</id>
<phase>generate-sources</phase>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<inputSpec>src/main/resources/search.yaml</inputSpec>
<language>java</language>
<dateLibrary>java8-localdatetime</dateLibrary>
<output>${project.basedir}</output>
<apiPackage>com.api</apiPackage>
<modelPackage>com.model</modelPackage>
<invokerPackage>com.client</invokerPackage>
</configuration>
</execution>
</executions>
</plugin>
结果:
"nextPaymentDueDate": { <-- note lowercase
"year": 2018,
"month": "JULY",
"era": "CE",
"dayOfMonth": 1,
"dayOfWeek": "SUNDAY",
"dayOfYear": 182,
"leapYear": false,
"monthValue": 7,
"chronology": {
"id": "ISO",
"calendarType": "iso8601"
}
},
我还添加了application.properties
:
spring.jackson.serialization.write-dates-as-timestamps=false
但是这没有任何作用。如果您使用的是Java 8,为什么要使用Three Ten?ThreeTen是Java6和Java7使用的后端口
Java8LocalDateTime
支持Java8TimeAPI,而不是ThreeTen。要支持Three Ten,您需要编写并注册自己的TypeAdapter
对象。@Andreas我希望我能控制使用什么:)我似乎无法用swager codegen插件覆盖Three Ten:(日期/时间类没有自己的格式,它们只是指定锚定点的时间量的容器。相反,您需要使用DateTimeFormatter。在本例中,toString
方法@MadProgrammer,具体取决于口味。DateTimeFormatter.ISO_LOCAL\u Date
也应该可以很好地工作。
"nextPaymentDueDate": { <-- note lowercase
"year": 2018,
"month": "JULY",
"era": "CE",
"dayOfMonth": 1,
"dayOfWeek": "SUNDAY",
"dayOfYear": 182,
"leapYear": false,
"monthValue": 7,
"chronology": {
"id": "ISO",
"calendarType": "iso8601"
}
},
"nextPaymentDueDate": {
"2018-07-01"
},
spring.jackson.serialization.write-dates-as-timestamps=false