TimeZone.swift 863 B

12345678910111213141516171819202122232425262728293031
  1. //
  2. // TimeZone.swift
  3. // RileyLink
  4. //
  5. // Created by Nate Racklyeft on 10/2/16.
  6. // Copyright © 2016 Pete Schwamb. All rights reserved.
  7. //
  8. import Foundation
  9. extension TimeZone {
  10. static var currentFixed: TimeZone {
  11. return TimeZone(secondsFromGMT: TimeZone.current.secondsFromGMT())!
  12. }
  13. var fixed: TimeZone {
  14. return TimeZone(secondsFromGMT: secondsFromGMT())!
  15. }
  16. /// This only works for fixed utc offset timezones
  17. func scheduleOffset(forDate date: Date) -> TimeInterval {
  18. var calendar = Calendar.current
  19. calendar.timeZone = self
  20. let components = calendar.dateComponents([.day , .month, .year], from: date)
  21. guard let startOfSchedule = calendar.date(from: components) else {
  22. fatalError("invalid date")
  23. }
  24. return date.timeIntervalSince(startOfSchedule)
  25. }
  26. }