91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

jvm中指定時區信息user.timezone問題如何解決

發布時間:2023-02-25 13:58:38 來源:億速云 閱讀:130 作者:iii 欄目:開發技術

本篇內容介紹了“jvm中指定時區信息user.timezone問題如何解決”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

問題

同一份程序使用時間LocalDateTime類型,在國內和國外部署后,返回的時間信息前端使用出問題。 因為LocalDateTime不帶時區信息,國內調用后,前端頁面默認使用的瀏覽器所在os的時區(我們的系統中沒有給用戶設置時區), 因此會出現時間不一致, 或者判斷超時了,但是實際上沒有超時的問題。

解決方式:

要么返回timestamp數字類型,前端自己解析。 缺點:直接使用api的同事不方便看操作時間信息。

用戶可以可以在個的profile中設置時區,方便各個時區用戶在一個系統中操作。 缺點:改動較多。

最后的折中方法:
后端內部使用ZonedDateTime,返回的時間中帶上時區信息。 備注:這里應用系統沒有使用數據庫,因為沒有使用數據庫時間格式。

這里遇到一個問題,國內機器都是時區為

jvm中指定時區信息user.timezone問題如何解決

springboot 程序啟動后,ZoneDateTime 格式默認是"2023-02-16T21:44:31.914407+08:00";

jvm中指定時區信息user.timezone問題如何解決

但是國外的機器不行,依然不帶時區信息。

在jvm啟動參數中指定時區信息
國內啟動不指定時間,os默認的是"Asia/Shanghai"。 國外的啟動參數指定為-Duser.timezone=CET

示意:(這里是示意,省略其他參數,實際參數要跟多)
Java -jar -Dspring.profiles.active=dev -Duser.timezone=CET app.jar

具體代碼

1,ObjectMapper中設置時區和時間格式

    ObjectMapper mapper = new ObjectMapper();
    mapper.findAndRegisterModules();

    mapper.setTimeZone(TimeZone.getDefault()); // 在本項目必須有這樣,某則有些接口中返回的ZonedDateTime序列化后不帶時區信息,添加這行就會帶上時區信息
    mapper.registerModule(new JodaModule());
    mapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
    return mapper;

2, 其他區地方解析返回的時間
引入依賴包

	<dependency>
		<groupId>joda-time</groupId>
		<artifactId>joda-time</artifactId>
		<version>2.12.2</version>
	</dependency>
import org.joda.time.DateTime;
import org.joda.time.format.DateTimeFormat;
import org.joda.time.format.DateTimeFormatter;

   DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyy-MM-dd'T'HH:mm:ss.SSSSSSZ").withZoneUTC();

    //  String str = "2022-02-16T21:44:31.914407+08:00";
    String str = "2022-02-17T14:35:48.8932+08:00";

    //String str = "2022-02-16T21:44:31+09:00";
    DateTime dateTime = formatter.parseDateTime(str);
    log.info("dateTime:{}", dateTime);
    String strAgain = dateTime.toString(formatter);
    log.info("strAgain:{}", strAgain);

“jvm中指定時區信息user.timezone問題如何解決”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

jvm
AI

驻马店市| 张家口市| 新蔡县| 湟中县| 巴东县| 水城县| 正宁县| 池州市| 正蓝旗| 枣强县| 沧源| 保山市| 南溪县| 临泉县| 太白县| 信宜市| 武安市| 大同市| 唐海县| 麻江县| 弥渡县| 鸡泽县| 邵武市| 云霄县| 禹州市| 江山市| 昭苏县| 蒙城县| 多伦县| 商都县| 松江区| 涞源县| 噶尔县| 花垣县| 永康市| 富裕县| 拜城县| 中方县| 唐海县| 洞口县| 绥棱县|