Ios pt BR DateFormatter Swift的错误行为
我有一个解析字符串日期的方法:Ios pt BR DateFormatter Swift的错误行为,ios,swift,nsdate,dateformatter,Ios,Swift,Nsdate,Dateformatter,我有一个解析字符串日期的方法: let dateFormatterGet = DateFormatter() let stringDate = "31/01/1965" dateFormatterGet.dateFormat = "dd-MM-yyyy" dateFormatterGet.locale = Locale(identifier: "pt_BR") let birthDate = dateFormatterGet.date(from: stringDate)
let dateFormatterGet = DateFormatter()
let stringDate = "31/01/1965"
dateFormatterGet.dateFormat = "dd-MM-yyyy"
dateFormatterGet.locale = Locale(identifier: "pt_BR")
let birthDate = dateFormatterGet.date(from: stringDate)
print(birthDate)
如果日期是1965年1月31日(1月31日),则生日返回零,但如果我将日期更改为30,则一切正常。这里出了什么问题?我无法重现。我得到了两个字符串的合理结果。我正在用Xcode 11GM2进行测试。你在哪个时区?那天钟在哪里调的?-比较类似的问题和可能的解决方案。@MartinR你是对的。问题是夏令时。如果你愿意,你可以回答,我会标记为正确。1965年1月31日,巴西的时钟向前调整了一小时@RobNapier:您可以通过设置
dateFormatterGet.timeZone=timeZone(标识符:“America/SaoèPaulo”)
@Joãopedromaris来重现问题。您只需将date formatter calendar属性设置为任何日历dateFormatterGet.calendar=calendar(标识符:.iso8601)