【发布时间】:2022-12-22 06:12:17
【问题描述】:
当我运行这段代码时:
let calendar = Calendar.current
var dateComponents = DateComponents()
dateComponents.weekday = calendar.firstWeekday
dateComponents.weekOfYear = 2
dateComponents.year = 2017
let startOfWeek = calendar.date(from: dateComponents)
let endOfWeek = calendar.date(byAdding: .day, value: 6, to: startOfWeek!)
let formatter = DateFormatter()
formatter.dateStyle = .short
print(formatter.string(from: startOfWeek!))
print(formatter.string(from: endOfWeek!))
它打印这个:
1/8/17
1/14/17
当我将代码更改为:
dateComponents.weekOfYear = 1
dateComponents.year = 2017
它打印这个:
12/31/17
1/6/18
为什么是 2017 年 12 月 31 日?
【问题讨论】:
-
尝试不制作短格式,打印出完整日期
-
使用
weekOfYear时,请使用yearForWeekOfYear而不是year。