Swift中的文本格式

在几乎每个应用程序中,都有一段时间我们必须进行一些格式化。 有时我们需要将Bool转换为可读的字符串,更经常的是将Date对象转换为文本文字,这对于使用我们的应用程序的人来说是可以理解的,而不是说用逗号/点号将数字四舍五入到两个空格(取决于国家/地区或操作系统设置)或在数字的千分之一之间放置分隔符。

Apple满足了这一要求,并创建了可在我们的应用程序中使用的格式化程序集。 苹果开发人员的意图是创建非常清晰的API,该API将是独立于国家/地区的,而且也非常可定制。 他们为此做得很好。 例如,要创建DateFormatter以在屏幕上的单个标签中打印不带时间的Date ,我们必须:

  var date:Date = // ... 2001-01-02 
  func setupDate(){ 
让dateFormatter = DateFormatter()
dateFormatter.dateStyle = .mediumStyle
dateFormatter.timeStyle = .noStyle
  dateLabel.text = dateFormatter.string(来自:日期) 
}

这将根据iOS或OS X语言首选项显示不同的字符串。 如果我们使用英语作为默认语言,它将显示Jan 2, 2001,对于法语,我们将显示2 janv. 2001 2 janv. 2001 ,对于日语,我们得到2001/01/02

其余的格式化程序具有非常相似的API。 我们可以使用枚举根据语言偏好来定义行为,但是我们也可以使用字符串格式来创建独立于系统配置的格式化程序。 当我们将日期作为字符串发送到REST服务时,我们可以将格式器定义为:

  func getCurrentDateStringForRest()->字符串{ 
让dateFormatter = DateFormatter()
dateFormatter.dateFormat =“ yyyy-MM-dd HH:mm:ss”
 返回dateFormatter.string(来自:Date()) 
}