在iOS上将带有序数格式的字符串转换为日期

时间:2013-01-30 09:48:20

标签: ios objective-c nsdate

  

可能重复:
  Converting a string to an NSDate


我在字符串中有日期,想要在NSDate中转换。在字符串日期是:

  

“2012年6月21日”

如何在NSDate中转换它?

当你回答时,请专注于“21”而不是“21”。

2 个答案:

答案 0 :(得分:2)

您可以使用NSDateFormatter将NSString更改为NSDate。

答案 1 :(得分:0)

对于这类问题available on Stack Overflow,有一个通用的答案,那就是使用NSDateFormatter in Objective-C / DateFormatter in Swift。并且格式是根据tr35-19遵循Use Format Strings to Specify Custom Formats或更高版本。

但是要处理日期格式的变化,以下是针对特定要求的Swift答案:

// Your example
let dateString = "21st June 2012"

// Sanitizing input for 2nd, 3rd, 4th
let normalizedDateString = dateString.replacingOccurrences(of: "nd", with: "st").replacingOccurrences(of: "rd", with: "st").replacingOccurrences(of: "th", with: "st")

// Converting string to date object
let formatter = DateFormatter()
formatter.locale = Locale(identifier: "en_US")
formatter.dateFormat = "d'st' MMMM yyyy"
let date = formatter.date(from: normalizedDateString)

Objective-C中的逻辑相同。