Как удалить ZoneId? - PullRequest
       68

Как удалить ZoneId?

1 голос
/ 15 октября 2019

Спасибо всегда за вашу помощь.

У меня возникла проблема в моем проекте.

Я хочу удалить Zoned Id и оставить только время.

Как удалитьzoned Id?

Он написан с использованием kotlin в Spring Boot Framework.

data class AvailableScheduleRequest (
    val address: String,
    val date: LocalDate,
    val people: Long,
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss'Z'", timezone = "Asia/Seoul")
    val hour: ZonedDateTime
)
@RestController
class Controller(
    val newBookingElasticSearchService: NewBookingElasticSearchService
) {
    @RequestMapping("/")
    @ResponseBody
    fun get(@RequestBody param: Map<String, Any>): List<AvailableRestaurant> {
        val json = JacksonUtils.om.writeValueAsString(param)
        val availableScheduleRequest =
            JacksonUtils.om.readValue(json, AvailableScheduleRequest::class.java)

        println(availableScheduleRequest.hour)
    }
}
object JacksonUtils {
    val om = ObjectMapper()

    init {
        val module = SimpleModule()
        module.addDeserializer(String::class.java, JsonRawValueDeserializer.INSTANCE)
        om.registerModule(JavaTimeModule())
        om.registerModule(KotlinModule())
        om.registerModule(module)
        om.dateFormat = SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssXXX")
        om.setTimeZone(TimeZone.getDefault())
        om.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false)
        om.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false)
        om.configure(DeserializationFeature.ACCEPT_EMPTY_ARRAY_AS_NULL_OBJECT, true)
        om.configure(DeserializationFeature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT, true)
        om.configure(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY, true)
    }

Этот код выводит:

2019-10-02T07:00+09:00[Asia/Seoul]

Но я хочуполучить это:

2019-10-02T07:00+09:00

Как получить это?

Спасибо за ваши усилия все время !!

1 Ответ

2 голосов
/ 15 октября 2019

Вместо ZonedDateTime вы можете использовать OffsetDateTime.

...