JSON-API-response包含以下属性:
created_at_timestamp: 1565979486,
timezone: "+01:00",
我使用Moshi和ThreeTenBp解析时间戳,并准备了以下自定义适配器:
class ZonedDateTimeAdapter {
@FromJson
fun fromJson(jsonValue: Long?) = jsonValue?.let {
try {
ZonedDateTime.ofInstant(Instant.ofEpochSecond(jsonValue), ZoneOffset.UTC) // <---
} catch (e: DateTimeParseException) {
println(e.message)
null
}
}
}
如您所见,区域偏移量在这里是硬编码的。
class ZonedDateTimeJsonAdapter : JsonAdapter<ZonedDateTime>() {
private val delegate = ZonedDateTimeAdapter()
override fun fromJson(reader: JsonReader): ZonedDateTime? {
val jsonValue = reader.nextLong()
return delegate.fromJson(jsonValue)
}
}
...
class ZoneOffsetAdapter {
@FromJson
fun fromJson(jsonValue: String?) = jsonValue?.let {
try {
ZoneOffset.of(jsonValue)
} catch (e: DateTimeException) {
println(e.message)
null
}
}
}
class ZoneOffsetJsonAdapter : JsonAdapter<ZoneOffset>() {
private val delegate = ZoneOffsetAdapter()
override fun fromJson(reader: JsonReader): ZoneOffset? {
val jsonValue = reader.nextString()
return delegate.fromJson(jsonValue)
}
}
Moshi.Builder()
.add(ZoneOffset::class.java, ZoneOffsetJsonAdapter())
.add(ZonedDateTime::class.java, ZonedDateTimeJsonAdapter())
.build()
对于created_at_timestamp
字段,应该使用没有时区的类型。这通常是即时
。它标识一个时刻,独立于它在哪个时区被解释。
然后,在您的封闭类型中,您可以定义一个getter方法,将instant和zone组合成一个值。ZonedDateTime.Ofinstant
方法可以做到这一点。
错误[42883]错误:函数datediff(未知,没有时区的时间戳,没有时区的时间戳)不存在提示:没有函数与给定的名称和参数类型匹配。您可能需要添加显式类型转换。职位:36
问题内容: 日期格式:“ yyyy-MM-dd’T’HH:mm:ss.SSSZ ” 输入日期:“ 2017-09-18T03:08:20.888 + 0200 ” 问题:我需要从输入的字符串中检索时区偏移量,并在该时区中打印已解析的日期。换句话说,我需要输出与输入相同。 成功解析输入日期并返回对象。众所周知,Date没有时区字段。将解析的日期转换为其时区,默认情况下为系统时区。当我打印此日期时,它
我不太理解时间戳的用法, 例如 用户创建文章,他们可以选择,系统也会自动存储。 a.我是否应该使和具有时区并设置UTC的时间戳? b.用户post字符串,然后将其转换为utc时间戳,如下所示使用并存储,当某人选择这一行时,将其显示为用户客户端时间反向使用 c.我使用到,是不是意味着服务器时间?我做得对吗? 我的想法是,我总是在数据库中插入utc时区时间戳,无论用户/客户端读取的地方,都将数据转换为
问题内容: 我正在尝试解析Unix时间戳,但超出范围错误。这对我来说真的没有意义,因为布局正确(如Go文档中所示): play 问题答案: 该函数不执行Unix时间戳。相反,您可以使用来解析字符串,并使用创建时间戳: 输出: play: http : //play.golang.org/p/v_j6UIro7a 编辑: 从更改为,以避免32位系统上的int溢出。
然后将变量持久化到MySQL表列中。 然而,虽然通过调试,我看到对象显示在正确的时区GMT+1,但在数据库上持久化时,它是一个GMT时区,所以要追溯一个小时。 使用函数返回一个GMT+1日期。 连接字符串为,没有任何参数。 编辑:找到这段代码
问题内容: 如何配置JPA /hibernate模式以UTC(GMT)时区在数据库中存储日期/时间?考虑以下带注释的JPA实体: 如果日期为太平洋标准时间(PST)2008-Feb-03 9:30 am,那么我希望数据库中存储2008-Feb-03 5:30 pm的UTC时间。同样,从数据库中检索日期时,我希望将其解释为UTC。因此,在这种情况下530pm是UTC 530pm。显示时,它将被格式化