簡體   English   中英

如何根據時區或地區或用戶偏好獲取當前日期?

[英]How to get current date based on time zone or locale, or user preference?

如果我的Web應用程序部署在美國,則無論客戶所在的國家/地區如何,我都會獲得美國時間。 但是,如果客戶在印度,則應該使用時區,語言環境或用戶偏好來獲取印度時間。 我該怎么辦?

Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("US/Mountain"), Locale.US);
System.out.println(calendar.getTime());

輸出:Fri Jul 02 12:15:35 IST 2010在這里,我正在獲取IST時間。 但是我需要美國/山脈的時間。

您正在打印calendar.getTime() ,它返回一個java.util.Date並且Date.toString()使用默認時區。 (A java.util.Date具有相關聯的時區或區域)。

如果要控制格式,請使用帶有適當語言環境的java.text.DateFormat

另外,也可以使用Joda Time ,這是更適合的日期和時間API。

我認為您的問題是如何獲取客戶端的本地時間,而不是使用客戶端日期格式來格式化服務器時間。

在這種情況下,應該在創建日歷時使用客戶端的語言環境,而不是對其進行硬編碼-這會將絕對時間(自1970年1月1日以來的毫秒數)轉換為適當的時區。

您可以使用ServletRequest.getLocale()確定客戶端首選的語言環境,

希望這可以幫助。

暫無
暫無

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

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