日期格式在Swift 3中不起作用

时间:2016-07-25 10:07:20

标签: nsdateformatter swift3

我在函数中遇到NSDate问题。基本上,格式化不起作用,我需要另一组眼睛来看看我做错了什么。

代码:

 @IBOutlet weak var dateField: NSTextField!

let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "MMMM dd yyyy"
let currentDate = NSDate()

convertedDateString = dateFormatter.string(from:currentDate as Date)
dateField.stringValue = convertedDateString as String

print("convertedDate: ", convertedDateString)
print("dateField.stringValue: ", dateField.stringValue)

结果:

  

convertedDate:2016年7月25日
  dateField.stringValue:7/25/16

4 个答案:

答案 0 :(得分:32)

Date().toString() // convert date to string with userdefined format.

extension Date {
        func toString() -> String {
            let dateFormatter = DateFormatter()
            dateFormatter.dateFormat = "MMMM dd yyyy"
            return dateFormatter.string(from: self)
        }
    }

答案 1 :(得分:8)

根据日期格式获取字符串的扩展

extension Date {
        func toString(format: String) -> String {
            let dateFormatter = DateFormatter()
            dateFormatter.dateFormat = format
            return dateFormatter.string(from: self)
        }
    }

Date().toString(format:"H:mm")

答案 2 :(得分:5)

这是我在操场上尝试的方式,它可以正常工作。

import Foundation

let dateFormatter = NSDateFormatter()

dateFormatter.dateFormat = "MMMM dd yyyy"
let currentDate = NSDate()

let convertedDateString = dateFormatter.stringFromDate(currentDate)
var dateField:NSTextField = NSTextField()
dateField.stringValue = convertedDateString as String

print(convertedDateString) //July 25 2016
print(dateField.stringValue) //July 25 2016

唯一不同的是我改为NSDateFormatter而不是dateFormatter.string我有dateFormatter.stringFromDate

enter image description here

您是否意外地在故事板或xib中设置了NSTextField的某些值?

答案 3 :(得分:0)

我遇到的问题是在重新安装和测试之前没有从手机中删除应用程序。代码在模拟器中工作,但不在手机上。希望这有帮助