理解是很重要的時候,一個java.util.Date
對象在時間的絕對點。沒有辦法從該對象獲取時區。 java.util.Date
背後的長期價值可以解釋爲獲取日期(日期字符串)人們通常使用它的方式。這取決於格式化程序對象使用的時區。
您還可以從日期字符串中獲取java.util.Date
對象。結果取決於日曆對象用於轉換/解析的時區。
這個例子可能會有幫助:
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.TimeZone;
public class Test {
public static void main(final String[] args) {
Date now = new Date();
printDateForBerlinAndKolkata(now, "Current Time:");
Calendar cal1 = new GregorianCalendar(TimeZone.getTimeZone("Europe/Berlin"));
Calendar cal2 = new GregorianCalendar(TimeZone.getTimeZone("Asia/Kolkata"));
cal1.set(2014, 11, 5, 15, 30);
printDateForBerlinAndKolkata(cal1.getTime(), "Gregorian Calendar 2014-12-05 15:30 Timezone for Berlin:");
cal2.set(2014, 11, 5, 15, 30, 0);
printDateForBerlinAndKolkata(cal2.getTime(), "Gregorian Calendar 2014-12-05 15:30 Timezone for Kolkata:");
}
private static void printDateForBerlinAndKolkata(Date now, String headline) {
System.out.println(headline);
System.out.println("---------------------------------------------");
SimpleDateFormat sdf = new SimpleDateFormat("yyyy MMM dd HH:mm:ssZ");
sdf.setTimeZone(TimeZone.getTimeZone("Europe/Berlin"));
System.out.println("Europe/Berlin: " + sdf.format(now));
sdf.setTimeZone(TimeZone.getTimeZone("Asia/Kolkata"));
System.out.println("Asia/Kolkata: " + sdf.format(now));
System.out.println("long value: " + now.getTime());
System.out.println("=============================================\n");
}
}
輸出:
Current Time:
---------------------------------------------
Europe/Berlin: 2014 Dez 05 16:35:21+0100
Asia/Kolkata: 2014 Dez 05 21:05:21+0530
long value: 1417793721481
=============================================
Gregorian Calendar 2014-12-05 15:30 Timezone for Berlin:
---------------------------------------------
Europe/Berlin: 2014 Dez 05 15:30:21+0100
Asia/Kolkata: 2014 Dez 05 20:00:21+0530
long value: 1417789821506
=============================================
Gregorian Calendar 2014-12-05 15:30 Timezone for Kolkata:
---------------------------------------------
Europe/Berlin: 2014 Dez 05 11:00:00+0100
Asia/Kolkata: 2014 Dez 05 15:30:00+0530
long value: 1417773600506
=============================================
也許下面鏈接的興趣也: Wikipedia Article on Unix Time
但日曆user1C = Calendar.getInstance();在服務器上執行。它只顯示服務器日曆。它可能在美國。但用戶可能在另一個位置。 – 2014-12-06 06:27:27
也許你應該改寫你的問題,因爲你不清楚你想要達到什麼樣的目標,並且設置是什麼?您沒有在user1機器上執行的客戶端代碼?你如何與服務器交互? – zabetak 2014-12-08 12:38:33