可以說我有一個時間戳記值。Timestamp.getTime()將時間戳值視爲系統時區中的時間
編輯
Calendar curCal = new GregorianCalendar(TimeZone.getDefault());
curCal.setTimeInMillis(System.currentTimeMillis());
TimeZone fromTz = TimeZone.getDefault();
curCal.setTimeZone(fromTz);
TimeZone gmtTZ = TimeZone.getTimeZone("GMT");
Calendar toCal = new GregorianCalendar(gmtTZ);
toCal.setTimeInMillis(curCal.getTimeInMillis());
Date dd = toCal.getTime();
SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy hh:mm:ss a",Locale.US);
format.setTimeZone(gmtTZ);
String ff = format.format(dd);
java.sql.Timestamp curTimeInGMT = new java.sql.Timestamp(dateInLong(ff, "dd/MM/yyyy hh:mm:ss a"));
現在我正在使用getTime()
以上時間的毫秒值;在的getTime()方法,按照Java文檔的
Long l = t.getTime();
定義是 Returns the number of milliseconds since January 1, 1970, 00:00:00 GMT represented by this Timestamp object.
所以,從我通過測試了這麼多次瞭解,getTime()
將會給給定的時間和月份之間的毫秒差1,1970,00:00:00 GMT。
對於getTime()
與1970年1月1日00:00:00格林威治時間差異,它需要另一個GMT時間。 所以它需要將給定時間轉換爲GMT時間。對於該轉換,它需要給定時間的時區。 它會考慮給定時間的時區爲系統時區,它會得到相應的GMT時間,然後它會找到兩個GMT時間之間的差異,它會返回差異。
我的理解是否正確?
顯示的內容不是時間戳,而是時間戳的字符串表示形式......答案完全取決於您如何創建實際時間戳。 – assylias
爲了理解,我只是複製了存儲在表中的時間戳值以將其放在此處。 – Matchendran
什麼表?在數據庫表中?數據庫列的類型是什麼?等你需要提供更多的信息... – assylias