我在Objective-C中有这段代码:
NSDateFormatter* formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd-HH-mm-ss"];
NSString* dateTimePrefix = [formatter stringFromDate:[NSDate date]];
我正在尝试转换为Swift,但我不知道这是我尝试的任何行:
var formatter = NSDateFormatter()
formatter.dateFormat="yyyy-MM-dd-HH-mm-ss"
var dateTimePrefix : NSString
dateTimePrefix = formatter.stringFromDate(formatter as? NSData)
我在stringFromDate
中收到错误。有什么问题?
答案 0 :(得分:6)
与 Swift 中的代码相同:
var formatter: NSDateFormatter = NSDateFormatter()
formatter.dateFormat = "yyyy-MM-dd-HH-mm-ss"
let dateTimePrefix: String = formatter.stringFromDate(NSDate())
答案 1 :(得分:2)
通过分析您的问题和您的代码,您似乎无法了解自己在做什么。尝试阅读方法文档并了解它所需的类型。
正如documentation stringFromDate
中所述,NSDate
为输入。
您尝试将NSDateFormatter
作为NSData
投放。
原始代码[NSDate date]
只是创建一个新的NSDate实例(这是当前日期)。您应该阅读Swift initialization documentation以使其更加舒适。
替换
formatter.stringFromDate(formatter as? NSData)
带
formatter.stringFromDate(NSDate())
答案 2 :(得分:0)
在Swift 5中,您可以使用DateFormatter
的{{3}}方法将Date
转换为格式化的String
。
以下Playground示例代码展示了如何使用string(from:)
:
import Foundation
let date = Date()
let formatter = DateFormatter()
formatter.dateFormat = "yyyy-MM-dd-HH-mm-ss"
let dateString = formatter.string(from: date)
print(dateString) // prints: 2019-03-04-17-59-23