2017-07-28 4 views

答えて

2

CalendardateComponents(in: TimeZone, from: Date)を使用すると、別のタイムゾーンで時刻と日付を確認できます。特定のアプリケーションのために:

// create current date, central time zone, and get the current calendar 
let now = Date() 
let centralTimeZone = TimeZone(abbreviation: "CST")! 
let calendar = Calendar.current 

let components = calendar.dateComponents(in: centralTimeZone, from: now) 

if components.weekday == 1 { 
    print("It is Sunday in Central Standard Time.") 
} else { 
    print("It is not Sunday in Central Standard Time.") 
} 

何がやっていることは、あなたに指定したタイムゾーンでDateComponentsのフルセットを与えるために、現在の暦を求めています。その後、components.weekdayは、曜日を日曜日にグレゴリオ暦で1で始まるIntとして返します。

あなたはそれが「明日」だ場合、より一般的に知りたい場合はどこか、ここでは簡単な方法です:

func isItTomorrow(in zone: TimeZone) -> Bool { 
    var calendarInZone = Calendar(identifier: Calendar.current.identifier) 
    calendarInZone.timeZone = TimeZone(abbreviation: "CST")! 
    return calendarInZone.isDateInTomorrow(Date()) 
} 

if isItTomorrow(in: centralTimeZone) { 
    print("It is tomorrow.") 
} else { 
    print("It is not tomorrow.") 
} 

isItTomorrow(in: TimeZone)あなたは決して現在の暦(おそらく.gregorianと同じタイプの新しいカレンダーを作成しませんが、知っている)、タイムゾーンを希望のタイムゾーンに設定します。次に、組み込みのCalendarメソッド.isDateInTomorrow()を組み込み、現在の時刻が目標のタイムゾーンで「明日」であるかどうかをチェックします。

これには他にもたくさんの方法がありますが、具体的な必要性に応じて、多くの作業を節約できる組み込みの方法があるかもしれませんので、CalendarDateComponents利用可能なものを参照してください。

+0

ありがとうございます。私は明日私のアプリでそれを試して実装しようとしている! –

関連する問題