代码之家  ›  专栏  ›  技术社区  ›  Szu

工作日组件问题

  •  -3
  • Szu  · 技术社区  · 6 年前

    我正在尝试使用日历中的工作日。我应该在星期一收到,但不知怎的,我却在星期二收到。知道为什么吗?

    let date = Date(timeIntervalSince1970: 1519654139)
    var calendar = Calendar(identifier: .gregorian)
    calendar.locale = Locale(identifier: "en_US_POSIX")
    calendar.timeZone = TimeZone(secondsFromGMT: 3600)!
    
    let weekDayComponent = calendar.component(Calendar.Component.weekday, from: date)
    let dateFormatter = DateFormatter()
    dateFormatter.dateFormat = "EEE EEEE"
    print("Date formatter says it's " + dateFormatter.string(from: date))
    print("Weekday component is \(weekDayComponent)")
    

    控制台输出:

    日期格式化程序说今天是周一
    工作日组件为2

    为什么我收到的是2而不是1?是,价值 calendar.firstWeekday 为1。

    1 回复  |  直到 6 年前
        1
  •  1
  •   Milan Nosáľ    6 年前

    公历中的一周从星期天开始,因此这是一种正确的行为,2是星期一。 Documentation 明确指出:

    工作日单位是数字1到n,其中n是一周中的天数。例如,在公历中,n为7,星期日由1表示。