iOS Swift如何在任何语言环境中都没有日期的DateFormatter?

时间:2018-07-10 14:02:13

标签: ios swift date nsdateformatter dateformatter

我想从两个日期创建日期字符串,例如:

> library(httr)

> test <-GET("https://olinda.bcb.gov.br/olinda/servico/taxaJuros/versao/v1/odata/TaxasJurosDiariaPorInicioPeriodo(InicioPeriodo=@InicioPeriodo)?%40InicioPeriodo=%2706-18-2018%27&%24format=json")

在遵守本地日期格式的同时(美国为MMM dd,欧洲为dd MMM,等等)。

如何获取DateFormatter给我默认样式但不带年份?

Error in curl::curl_fetch_memory(url, handle = handle) : 
  Failure when receiving data from the peer

1 个答案:

答案 0 :(得分:4)

使用DateIntervalFormatter。目的是为您提供一个正确定位的字符串,该字符串表示两个日期之间的日期间隔。

以下是两个日期的示例:

// Test code for the two dates
let firstDate = Calendar.current.date(from: DateComponents(year: 2018, month: 4, day: 21))!
let lastDate = Calendar.current.date(from: DateComponents(year: 2018, month: 9, day: 17))!

let dif = DateIntervalFormatter()
dif.timeStyle = .none
dif.dateStyle = .medium
let dateInt = dif.string(from: firstDate, to: lastDate)

结果(美国):

  

2018年4月21日至9月17日

结果(英国):

  

2018年4月21日至9月17日


如果您确实需要将DateFormatter与经过正确本地化的特定dateFormat配合使用(例如月和日,但没有年份),请使用setLocalizedDateFormatFromTemplate

let df = DateFormatter()
df.setLocalizedDateFormatFromTemplate("MMMdd")
let result = df.string(from: Date())

这将给出正确的本地化结果,其中仅包含日期和缩写的月份。