私のローカルタイムが別のタイムゾーンの深夜の後であるかどうかをチェックしたいと思います。ローカル時間が別のタイムゾーンの真夜中の後であることを確認します
具体的には、現在私がいる場所が午後11時(土曜日)、または午前1時の現地時間の場合、中央時間(12 AM日曜日以降)の新しい週の開始であるかどうかを確認したいと思います。
私のローカルタイムが別のタイムゾーンの深夜の後であるかどうかをチェックしたいと思います。ローカル時間が別のタイムゾーンの真夜中の後であることを確認します
具体的には、現在私がいる場所が午後11時(土曜日)、または午前1時の現地時間の場合、中央時間(12 AM日曜日以降)の新しい週の開始であるかどうかを確認したいと思います。
Calendar
のdateComponents(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()
を組み込み、現在の時刻が目標のタイムゾーンで「明日」であるかどうかをチェックします。
これには他にもたくさんの方法がありますが、具体的な必要性に応じて、多くの作業を節約できる組み込みの方法があるかもしれませんので、CalendarとDateComponents利用可能なものを参照してください。
ありがとうございます。私は明日私のアプリでそれを試して実装しようとしている! –