在UIDatePicker中删除日期的可选字符串

时间:2017-01-01 07:31:28

标签: swift swift3

新年快乐,全部!

如何将datePicker文字显示为Jan 1, 2017而不是2017/1/1?在我的PlayGround中,它看起来像预期的那样,但在我的模拟器或控制台中,它看起来不是预期的。

// createDatePicker():
datePicker.datePickerMode = .date

// donePressed():
let dateFormatter = DateFormatter()
dateFormatter.dateStyle = .short
dateFormatter.timeStyle = .none
dateFormatter.dateFormat = "mm/dd/yyyy"
let fromString = dateFormatter.string(from: datePicker.date)
let date = dateFormatter.date(from: fromString) // I dont need time but got Jan 1, 2017, 12:00 AM in playground
datePickerText.text = "\(date)"
print("\(date)") // in console: Optional(2017-1-1 00:00:00 +0000)

我需要摆脱Optional()但不确定如何将Date!转换为String!。如何让文字成为Jan 1, 2017

3 个答案:

答案 0 :(得分:1)

在您的代码中,您将日期转换为日期字符串: -

let fromString = dateFormatter.string(from: datePicker.date)
let date = dateFormatter.date(from: fromString) //Avoid this line in your code

然后无需再将日期字符串更改为日期,请尝试以下代码: -

let formatter = DateFormatter()
formatter.dateFormat = "MMM d, yyyy" //Date Formatting
let date = formatter.string(from: datePicker.date)
datePickerText.text = date
print(date)

<强>输出: -

 Jan 1, 2017

答案 1 :(得分:0)

只需将日期格式化为您希望的日期,如下所示:

dateFormatter.dateFormat = "MMM d, yyyy"
let fromString = dateFormatter.string(from: datePicker.date)
print(fromString) // Jan 1, 2017

答案 2 :(得分:0)

你可以试试这个!

   let formatter = NSDateFormatter()
formatter.dateformat = "MMMM dd,YYYY"

如果您要尝试显示日期格式的标签,

label.text = formatter.stringFromDate(datepicker.date)