如何使用 strftime 格式化 Swift 中的字符串

How to format string in Swift using strftime

编辑:请仔细阅读我需要支持这种特定格式,我不能只是使用 NSDateFormatter

来使用硬编码格式

您好,我的任务是使用从 OUR API 检索到的设置来格式化我们应用程序中的所有日期,这种情况下的格式由 strftime 函数支持.

我应该如何在 swift 中使用它们。

日期和时间的示例格式: "date_format": "%d %B %Y" "time_format": "%H:%M"

我找到了 strtime 函数,但我不确定我应该如何使用它,甚至不确定我是否应该使用它。我也只在 Objective-C

中找到示例

你可以使用这样的东西:

let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd 'at' h:mm a" 
let str = dateFormatter.stringFromDate(NSDate())

以及详细信息 - https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSDateFormatter_Class/

我希望你能找到更好的方法来满足这个要求,但这是代码。

let bufferSize = 255
var buffer = [Int8](count: bufferSize, repeatedValue: 0)
var timeValue = time(nil)
let tmValue = localtime(&timeValue)

strftime(&buffer, UInt(bufferSize), "%d %B %Y", tmValue)
let dateFormat = String(CString: buffer, encoding: NSUTF8StringEncoding)!

strftime(&buffer, UInt(bufferSize), "%H:%M", tmValue)
let timeFormat = String(CString: buffer, encoding: NSUTF8StringEncoding)!

注意:为了清楚起见,我稍微更新了代码。