2010-07-29 73 views
3

我需要編寫一個方法來獲取當前時間星期幾(太平洋時間)。以下代碼是否正確?獲取星期幾,太平洋時間的方法

static Calendar s_calendar = Calendar.getInstance(Locale.US); 
static { 
    s_calendar.setTimeZone(TimeZone.getTimeZone("America/Los_Angeles")); 
} 

public static int getDayOfWeek() { 
    s_calendar.setTimeInMillis(System.currentTimeMillis()); 
    return s_calendar.get(Calendar.DAY_OF_WEEK); 
} 

謝謝。下面

回答

2

用途:

Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("America/Los_Angeles"), 
    Locale.US); 
int dayOfWeek = cal.get(Calendar.DAY_OF_WEEK); 
+0

我創建了一個靜態Calendar對象,因爲我認爲在每個方法調用時創建它可能會很昂貴。 – user256239 2010-07-29 01:20:19

+0

取決於您的用例是否優化日曆創建。看看這個:http://stackoverflow.com/questions/368094/system-currenttimemillis-vs-new-date-vs-calendar-getinstance-gettime – 2010-07-29 01:34:52

0

System.currentTimeMillis的()返回UTC的米利斯。 (日曆.DAY_OF_WEEK)

+0

我做了一個測試。沒有轉換它,我沒有看到任何問題。 Java doc指定「setTimeInMillis(long millis):millis - 從紀元以UTC毫秒爲單位的新時間。」 http://java.sun.com/javase/6/docs/api/java/util/Calendar.html#setTimeInMillis(long) – user256239 2010-07-29 17:15:39