如何从Swift中的字符串制作24小时时间格式

时间:2018-01-16 10:57:32

标签: ios swift

我想将用户生成的字符串转换为Date数据类型。我希望时间是24小时格式

let dateFormatter = DateFormatter()
let timeAsString : String = "22:30"
dateFormatter.dateFormat = "HH:mm"

let timeFromString = dateFormatter.date(from: timeAsString)
  

结果:" 2000年1月1日晚上10:30 "

但结果是12小时格式。如何将22:30作为日期数据类型?

3 个答案:

答案 0 :(得分:5)

日期没有格式,因此只能更改从日期转换的字符串

Swift 4

menu

对于不同的日期格式,您可以查看nsdateformatter.com

答案 1 :(得分:1)

您的代码绝对正确,代码中没有问题。日期格式的字符串HH表示24小时时间显示格式。

但是开发人员(应用程序)无法控制时间格式。您可以设置支持24小时时间的日期格式字符串,但如果用户已经(未启用)从设备获得24小时支持,那么它将显示12小时的时间。

检查您的模拟器/ mac系统/ iPhone设备时间格式并将其设置为24小时显示。

请参阅此苹果文档24小时时间支持:Date Formatters

  

时间的表示可能是13:00。但是,在iOS中,如果用户将24小时时间切换为关闭,则时间可能是下午1:00。

答案 2 :(得分:0)

func convertToString(of dateTo: Date) -> String {

  let dateFormatter = CustomDateFormatter()

  //Your New Date format as per requirement change it own
  dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss" 
  let newDate: String = dateFormatter.string(from: dateTo) //pass Date here
  //  print(newDate) //New formatted Date string

  return newDate
 }