将 NSDate 转换为 String 得到空对象

Posted

技术标签:

【中文标题】将 NSDate 转换为 String 得到空对象【英文标题】:Converting NSDate to String gets empty object 【发布时间】:2016-04-20 20:26:21 【问题描述】:

在应用程序中,有一个屏幕,我在Date 模式下使用Date Picker 来获取日期输入。

那么这个屏幕会将NSDate类型中输入的日期传递到上一个屏幕转换为字符串后显示为textFiled

func dateDetector(aDate: UIDatePicker) 

    let dateFormat = NSDateFormatter()

    dateFormat.dateStyle = NSDateFormatterStyle.MediumStyle
    dateFormat.timeStyle = NSDateFormatterStyle.NoStyle

    dueDate = aDate.date

【问题讨论】:

旁注:您能否停止 使用“Xcode”作为标签和问题标题?您为许多最后的问题做了它,其中没有一个与 Xcode 相关。你正在使用 Xcode——你没有问任何关于它的问题。让我们只关注实际的主题。谢谢。 :) 请提供一个带有精确值的最小示例。这个问题需要很长时间才能解读。 出了什么问题 :)) Swift 与 Xcode 无关,然后 Swift 与 android Studio 相关 :)) 标签不是关于问题的内容,而是关于问题的内容。通过相同的逻辑,您可以选择一个随机标签并找到某种关系 怎么了?你应该告诉我们。我们可以告诉您是什么导致了问题,但不能告诉您问题是什么。您告诉我们正在发生的事情,并将其与您想要发生的事情进行比较。然后我们可以帮助您找到解决方案。 【参考方案1】:

基于 ryantxr 添加的答案

有时您需要在存储和检索日期时设置语言环境标识符。 例如:-

let dateFormat = NSDateFormatter()
dateFomat.locale = NSLocale(localeIdentifier:"en_IN")
dateFormat.dateStyle = NSDateFormatterStyle.MediumStyle
dateFormat.timeStyle = NSDateFormatterStyle.NoStyle

dueDate = aDate.date

当更改为字符串时

let dateFormat = NSDateFormatter() dateFomat.locale = NSLocale(localeIdentifier:"en_IN") dateFomat.dateStyle = NSDateFormatterStyle.MediumStyle let datestring = dteformat.stringFromDate(dueDate)

希望对你有帮助

【讨论】:

【参考方案2】:

我认为你没有给格式化程序一个样式。

let df = NSDateFormatter()
df.dateStyle = NSDateFormatterStyle.LongStyle
let ds = df.stringFromDate(nsd)

print(ds)

如果你不给它一个样式,你会得到一个空字符串。

【讨论】:

以上是关于将 NSDate 转换为 String 得到空对象的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 nsdateformatter 将 nsdate 转换为另一种格式

将具有给定时间的 NSDate 对象转换为具有相同时间和当前日期的对象的最有效方法

将 Datatable 转换为具有空值的对象

如何将长整数时间转换为 NSString 或 NSDate 以显示时间?

为啥核心数据托管对象中的 NSDate 转换为 NSTimeInterval?

使用 JSON.stringify 将对象转换为字符串显示空对象 [重复]