从 iOS 快捷方式中的文本创建日期

Create date from text in iOS Shortcuts

我想获取一个字符串并将其转换为日期,但我找不到输入文本的格式,因此无法将其识别为日期。请看截图。

  1. 以文本形式询问日期(这只是为了尝试,因为实际上我是从文本中获取日期 属性)
  2. 将其转换为日期
  3. 输出为格式化日期 -> 日期转换错误

使用 NSDate 格式化程序从字符串到日期

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setTimeZone:[NSTimeZone systemTimeZone]];
[dateFormatter setLocale:[NSLocale localeWithLocaleIdentifier:@"en_US"]];
[dateFormatter setDateFormat:@"EEE MMM dd HH:mm:ss zzz yyyy"];
NSDate *dateFromString = [dateFormatter dateFromString:[itemOnServerDict objectForKey:@"lastTimeSeen"]];

let dateFormatter = DateFormatter()
let enUSLocale = Locale(identifier: "en_US")
dateFormatter.locale = enUSLocale
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZZZZZ"
let dateString = dateFormatter.string(from: Date())

您必须设置日期格式,因为文本是这样的

let dateFormatter = DateFormatter()
//here you have to pass the format of the date in the text
dateFormatter.dateFormat = "dd/MM/yy"
let date = dateFormatter.date(from: string)

然后使用这个日期,您可以解析为具有新格式的新字符串,如下所示

 //set the desired format to the date
dateFormatter.dateFormat = "yyyy-MM-dd" 
let dateString = dateFormatter.strin(from: date)

可以找到答案here。 他们的关键是不要直接在 "Use date" 中使用魔术变量,而是 select "Given date" 然后为此使用魔术变量。这样就可以指定格式了。