2016-04-27 48 views
1

我嘗試獲得「每週的一週」,所以問題基本上是我使用此代碼獲取一年中的這一週,但這給我錯誤的一週。 例如今天是27/04/16所以這段代碼給我帶來了18,但我在網上搜索和真正的一週是17. 什麼我需要改變我的代碼來獲得第17周?在ISO 8601中獲得WEEK_OF_YEAR

我試試這個..

Calendar calendar = new GregorianCalendar(); 
    calendar.setTime(new Date()); 
    weekOfYear = calendar.get(Calendar.WEEK_OF_YEAR); 

這。

Calendar calendar = Calendar.getInstance() 
    calendar.setTime(new Date()); 
    weekOfYear = calendar.get(Calendar.WEEK_OF_YEAR); 

在維基百科 https://en.wikipedia.org/wiki/ISO_week_date#First_week

四月有這個星期14至17 5月18日至22日

此代碼是Java 7的Android。 幫幫我。請。

謝謝

+0

這只是因爲您的時區與日曆的默認時區不同。將日曆時區設置爲你的。 – Pehlaj

+0

這給了我17,你是用真實的設備來試試這個嗎? – Nirekin

+0

是的,這是在真實的設備 – exequielc

回答

1

所以,答案是使用德語區域設置來獲得今年的第17周。在ISO8901中。

Calendar calDe = Calendar.getInstance(Locale.GERMAN); 
calDe.setTime(new Date()); 
weekOfYear = calDe.get(Calendar.WEEK_OF_YEAR);