2017-10-28 101 views
1

我有一個應用程序來計算兩個位置之間的時間差,我只是意識到選擇「歐洲/倫敦」和「GMT」都返回相同的字符串「格林尼治標準時間」NSTimeZone從兩個不同的時區返回相同的本地化名稱

buttonTimeZone.setTitle(timeZone?.localizedName(for: .standard, locale: locale), for: .normal) 
    print("timeZone:\(String(describing: timeZone?.description))") 

該按鈕顯示「格林威治標準時間」,但我相信GMT和歐洲/倫敦有1小時的時差。

我添加了第二行print,以確保在測試時我選擇了兩個不同的區域。測試時間爲2017年10月28日。

感謝您的輸入!

+0

格林威治位於倫敦郊外,因此格林威治時間(GMT)*是*倫敦時間。你提到的是英國夏令時,倫敦在每年的3月和10月之間使用 –

+1

我剛剛意識到倫敦在夏令時,因爲時鐘在今天改變了。我所要做的就是將風格從.standard改爲.daylightsaving。 https://developer.apple.com/documentation/foundation/nstimezone.namestyle感謝您的評論! – yoshitech

+0

您應該將您的解釋和解決方案發布爲答案。 – clemens

回答

1

我剛剛意識到倫敦在夏令時,因爲時鐘在今天改變了。我所要做的就是在DST時將風格從.standard改爲.daylightsaving。

var title = timeZone?.localizedName(for: .standard, locale: locale) 
    if (timeZone?.isDaylightSavingTime(for: dateTimeComplete!))! { 
     title = timeZone?.localizedName(for: .daylightSaving, locale: locale) 
    } 
    buttonTimeZone.setTitle(title, for: .normal) 
相關問題