2016-07-25 115 views
14

我在函数中遇到NSDate的问题。本质上,格式不起作用,我需要另一组眼睛来看看我做错了什么。日期格式不适用于Swift 3

代码:

@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:16年7月25日

+0

根据这个网站一切都ok http://nsdateformatter.com/ –

+1

什么是你的dateField?格式化程序似乎是正确的。 – WeiJay

+0

日期字段(不管是什么)可能需要一些特定的格式。 – Sulthan

回答

29
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) 
     } 
    } 
+0

这看起来不错。我尝试过一个演示,它似乎工作。我会在我的项目中尝试,但我会将其标记为解决方案。谢谢! –

+0

你也可以通过 'NSDate()。toString()'和 'extension NSDate {...} – ozata

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

你不小心设置你有NSTextField故事板或XIB一定的价值?

+0

嗨,在你的操场上,dateField是一个字符串,而不是NSTextField –

+1

好吧,我更新了OSX的操场,还有dateField到NSTextField。它仍然有效。 –

+2

dateFormatter.string(from:currentDate as Date)是Swift 3.虽然 –

8

扩展安装重和测试之前获取字符串对日期格式

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

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

我有了问题不从手机中删除该应用。代码在模拟器中工作,但不是电话。希望这可以帮助