簡體   English   中英

java:rest api中的時區

[英]java: TimeZone in rest api

當用戶發送 POST 請求時,在我的球衣休息 api 中

{
   "user":"john",
   "question":"what was temperature an hour ago"
}

QuestionProcessoran 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/TunisEurope/ParisAsia/KolkataPacific/AucklandAmerica/Montreal

您需要重新編寫 REST API以傳遞時區名稱字段。

Continent/Region格式指定正確的時區名稱,例如上面的示例。 永遠不要使用ESTIST等 2-4 個字母的縮寫,因為它們不是真正的時區,不是標准化的,甚至不是唯一的(!)。


順便說一句,我無法想象何時調用LocalDateTime.now是正確的做法。 該類不能表示片刻,因為它故意缺少從 UTC 或時區偏移的上下文。 改用InstantOffsetDateTimeZonedDateTime

Java 中的日期時間類型表,現代和傳統

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM