我正在使用EVReflection而Date不起作用。并且使用NSDate我不知道如何格式化为'dd-MM-yyyy HH:mm'的字符串。
答案 0 :(得分:1)
两件事:
第一: 你需要问一个特定的问题,总是使用类似的代码,或者显示你想要实现的内容的实际代码。这些都不在这里。
第二:
不幸的是,你不想做什么。看看EVReflection,它的属性设置器.setObjectForKey
不适用于结构体,如果你查看the apple docs中Date
的页面标题,它就是一个结构体。做你的研究!
不使用结构,而是为此创建自己的对象模型 结构
所以你必须尝试一下,看看它是否有效。
对于您的NSDate格式,请使用类似found in this post here的扩展程序:
extension Date {
var currentUTCTimeZoneDate: String {
let formatter = DateFormatter()
formatter.timeZone = TimeZone(identifier: "UTC")
formatter.amSymbol = "AM"
formatter.pmSymbol = "PM"
formatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
return formatter.string(from: self)
}
}
您可以在NSDate上使用:
extension NSDate {
var currentUTCTimeZoneDate: String {
return (self as Date).currentUTCTimeZoneDate
}
}
let d = NSDate().currentUTCTimeZoneDate
print(d) // prints 2017-07-07 22:19:22
答案 1 :(得分:1)
EVReflection中使用的默认日期格式化程序是" yyyy' MM' - ' dd' ' HH':'毫米':' SSZ" 如果要更改默认格式化程序,则可以使用以下代码:
dateFormatter = DateFormatter()
dateFormatter!.locale = Locale(identifier: "en_US_POSIX")
dateFormatter!.timeZone = TimeZone(secondsFromGMT: 0)
dateFormatter!.dateFormat = "yyyy'-'MM'-'dd' 'HH':'mm':'ssZ"
EVReflection.setDateFormatter(dateFormatter)
如果您有一个具有不同格式的属性,请使用EVReflection属性转换器函数。