如何将这个日期代码转换为swift?

时间:2014-06-25 08:53:53

标签: swift xcode6

我在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中收到错误。有什么问题?

3 个答案:

答案 0 :(得分:6)

Swift 中的代码相同:

var formatter: NSDateFormatter = NSDateFormatter()
formatter.dateFormat = "yyyy-MM-dd-HH-mm-ss"
let dateTimePrefix: String = formatter.stringFromDate(NSDate())

答案 1 :(得分:2)

Disclamer

通过分析您的问题和您的代码,您似乎无法了解自己在做什么。尝试阅读方法文档并了解它所需的类型。

错误

正如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