【问题标题】:Date vs String manipulation Swift2 Best Practise日期与字符串操作 Swift 2 最佳实践
【发布时间】:2016-05-11 19:44:26
【问题描述】:

API 在 json 文件中返回这个值:

2016-05-11T00:00:00,2016-05-11T21:22:59

现在我需要提取 "," 之后的日期时间,格式为 hh:mm

所以对于这个例子,我想要这个结果“21:22”。因为我后来需要这个值作为字符串我猜在这种情况下字符串方法更容易?

最好的方法是什么?我应该使用字符串操作还是用作 NSDate 对象?

对不起,我对 swift 很陌生,过去大多是 javascript。

非常感谢任何帮助。

BR

尼古拉

【问题讨论】:

  • 您是否总是需要 API 提供的日期?或者它是否必须考虑用户的位置,如果是这样,我会推荐。创建一个 NSDate 对象时,您总是可以创建一个新的格式化程序,以便稍后将时间作为字符串取出。
  • 一个好问题。我只在德国测试了 API,所以我不确定它是否会改变时区。但我总是想根据德国时间进行报告(该服务仅在德国可用),如果报告应用程序的用户位于不同的时区,该应用程序仍应根据德国时区进行报告。这可以理解吗?对不起,不是母语人士。

标签: string swift swift2 nsdate nsdateformatter


【解决方案1】:
let period = "2016-05-11T00:00:00,2016-05-11T21:22:59"

// split the string into date string
let dateStrings = period.componentsSeparatedByString(",")

// define date parser
let parser = NSDateFormatter()
parser.dateFormat = "yyyy-MM-dd'T'HH:mm:ss"

// parse dates
let dates = dateStrings.map { parser.dateFromString($0)! }

// generate a string from the second date using system settings
let formatter = NSDateFormatter()
formatter.dateStyle = .NoStyle
formatter.timeStyle = .ShortStyle
// or formatter.dateFormat = "HH:mm"

let timeString = formatter.stringFromDate(dates[1])

print(timeString)

【讨论】:

  • 谢谢苏丹!比我的方法好得多。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-31
  • 1970-01-01
  • 1970-01-01
  • 2010-11-10
  • 2017-12-01
  • 1970-01-01
相关资源
最近更新 更多