Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/107.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么iOS 12中的日期顺序计算发生了变化?_Ios_Nsdate_Ios12 - Fatal编程技术网

为什么iOS 12中的日期顺序计算发生了变化?

为什么iOS 12中的日期顺序计算发生了变化?,ios,nsdate,ios12,Ios,Nsdate,Ios12,在操场上试试下面的方法。在iOS 12之前,它适用于所有输入(从1开始): 投入将等于产出 let input = 1 let dateFormatter = DateFormatter() dateFormatter.dateFormat = "yyyy-MM-dd" var dateComponents = DateComponents() dateComponents.day = input dateComponents.hour = 0 dateComponents.minute =

在操场上试试下面的方法。在iOS 12之前,它适用于所有输入(从1开始):

投入将等于产出

let input = 1

let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd"

var dateComponents = DateComponents()
dateComponents.day = input
dateComponents.hour = 0
dateComponents.minute = 0
dateComponents.second = 0

let date = Calendar.current.date(from: dateComponents)
let dateString = dateFormatter.string(from: date!)

let date2 = dateFormatter.date(from: dateString)
let output = Calendar.current.ordinality(of: .day, in: .era, for: date2!)

assert(output==input)
但是,现在在iOS 12中,输出和输入将仅从输入577738开始相等。。。日期:1582年10月17日,即公历生效后两天(来源:)

那么,这是怎么回事?为什么iOS 12会发生这种变化