[英]java: TimeZone in rest api
當用戶發送 POST 請求時,在我的球衣休息 api 中
{
"user":"john",
"question":"what was temperature an hour ago"
}
QuestionProcessor
將an hour ago
的字符串轉換為LocalDateTime.now(ZoneId.of(UTC)).minusHours(5).format(dateformatter);
我想用用戶時區替換UTC
默認值。 我該怎么做?
感謝您的幫助
你問:
用用戶時區替換 UTC 默認值
簡單:
ZoneId z = ZoneId.of( "Africa/Tunis" ) ;
ZonedDateTime now = ZonedDateTime.now( z ) ;
ZonedDateTime then = now.minusHours( 1 ) ;
問題:您必須知道用戶的時區名稱,例如Africa/Tunis
、 Europe/Paris
、 Asia/Kolkata
、 Pacific/Auckland
或America/Montreal
。
您需要重新編寫 REST API以傳遞時區名稱字段。
以Continent/Region
格式指定正確的時區名稱,例如上面的示例。 永遠不要使用EST
或IST
等 2-4 個字母的縮寫,因為它們不是真正的時區,不是標准化的,甚至不是唯一的(!)。
順便說一句,我無法想象何時調用LocalDateTime.now
是正確的做法。 該類不能表示片刻,因為它故意缺少從 UTC 或時區偏移的上下文。 改用Instant
、 OffsetDateTime
或ZonedDateTime
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.