![](/img/trans.png)
[英]Swift: formatting NSDictionary as JSON with specific date format
[英]How to format date in Swift that similarly matches Json?
我在生成與json輸出匹配的Date對象時遇到問題。 在http://chartapi.finance.yahoo.com/instrument/1.0/aapl/chartdata;type=quote;range=1y/json中 -日期采用以下格式“日期”:20151013。為了獲得2015- 10-13,首先,我在API調用和JSON解析中使用Alamofire和SwiftJSON。 這是我的代碼中的一些相關行:
let dateInteger = subJson["Date"].int
if dateInteger != nil {
let editedDateInt = dateInteger!
let dateString = NSMutableString(string: "\(editedDateInt)")
dateString.insert("-", at: 4)
dateString.insert("-", at: 7)
chartpoint.date = Formatters.sharedInstance.dateFromString(key: dateString as String) }
// date extension
public class Formatters {
public static let sharedInstance = Formatters()
private let dateKeyFormatter = DateFormatter()
init() { dateKeyFormatter.dateFormat = "yyyy-MM-dd" }
public func dateFromString(key: String?) -> Date? {
guard let key = key else { return nil }
return dateKeyFormatter.date(from: key) }
問題是輸出出現了Optional(2015-10-12 16:00:00 +0000)
。 我期望的不是2015-10-13。 我該如何解決? 這與用戶的區域設置或時區有關嗎?
看一下這個
斯威夫特3.0
let dateFromServer = "20151013"
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyyMMdd"
dateFormatter.timeZone = TimeZone(abbreviation: "GMT")
let date = dateFormatter.date(from: dateFromServer)
dateFormatter.dateFormat = "yyyy-MM-dd"
let finalDate = dateFormatter.string(from: date!)
print(finalDate)
輸出:
2015-10-13
如@rmaddy所建議,將格式樣式形式YYYY更改為yyyy 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.