类型 'TimeZone' 在 Swift3 中没有成员 'local'
Type 'TimeZone' has no member 'local' in Swift3
我正在使用 Xcode8 Beta4 将 Swift2.3 开发的项目转换为 Swift3.0。其中我有将日期转换为字符串的方法,但它无法转换。
class func convertDateToString(_ date:Date, dateFormat:String) -> String?
{
let formatter:DateFormatter = DateFormatter();
formatter.dateFormat = dateFormat;
formatter.timeZone = TimeZone.local
let str = formatter.string(from: date);
return str;
}
此外,在文档中没有名为 local
的成员。
有什么方法可以直接使用TimeZone
吗?或者我们必须使用 NSTimeZone
?
通过深入 class 层次结构,发现 NSTimeZone
为 public typealias
,这为我们打开了 NSTimeZone
的访问权限。
里面TimeZone
public struct TimeZone : CustomStringConvertible, CustomDebugStringConvertible, Hashable, Equatable, ReferenceConvertible {
public typealias ReferenceType = NSTimeZone
}
所以通过使用下面的语法错误就消失了。
所以下面的代码可以工作。
本地时区。
formatter.timeZone = TimeZone.ReferenceType.local
对于默认时区。
使用具有相同语法的 default
。
formatter.timeZone = TimeZone.ReferenceType.default
对于系统时区。
使用具有相同语法的 system
。
formatter.timeZone = TimeZone.ReferenceType.system
Swift 3
您可以使用 .current
而不是 .local
。
TimeZone.current
在 swift 3:
中用这个代替 .local
TimeZone.current
我正在使用 Xcode8 Beta4 将 Swift2.3 开发的项目转换为 Swift3.0。其中我有将日期转换为字符串的方法,但它无法转换。
class func convertDateToString(_ date:Date, dateFormat:String) -> String?
{
let formatter:DateFormatter = DateFormatter();
formatter.dateFormat = dateFormat;
formatter.timeZone = TimeZone.local
let str = formatter.string(from: date);
return str;
}
此外,在文档中没有名为 local
的成员。
有什么方法可以直接使用TimeZone
吗?或者我们必须使用 NSTimeZone
?
通过深入 class 层次结构,发现 NSTimeZone
为 public typealias
,这为我们打开了 NSTimeZone
的访问权限。
里面TimeZone
public struct TimeZone : CustomStringConvertible, CustomDebugStringConvertible, Hashable, Equatable, ReferenceConvertible {
public typealias ReferenceType = NSTimeZone
}
所以通过使用下面的语法错误就消失了。
所以下面的代码可以工作。
本地时区。
formatter.timeZone = TimeZone.ReferenceType.local
对于默认时区。
使用具有相同语法的 default
。
formatter.timeZone = TimeZone.ReferenceType.default
对于系统时区。
使用具有相同语法的 system
。
formatter.timeZone = TimeZone.ReferenceType.system
Swift 3
您可以使用 .current
而不是 .local
。
TimeZone.current
在 swift 3:
中用这个代替.local
TimeZone.current