如何以12小时格式从UIDatePicker到UITextField设置日期和时间

时间:2017-09-18 12:03:36

标签: ios iphone swift datepicker dateformatter

如果系统日期为24小时格式。我想以12小时格式将选定的日期和时间设置为AM / PM到textfield作为输入视图。我试图转换选定的日期和时间,但它给我24小时格式。谁能帮帮我吗。这是我的转换代码:

user_service_details

5 个答案:

答案 0 :(得分:1)

你似乎在这里做了不必要的工作。

鉴于你已经有了约会,这应该有效:

let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd h:mm a"
let date12 = dateFormatter.string(from: datePickerView.date)
print("12 hour formatted Date:", date12)

答案 1 :(得分:0)

您可以从日期选择器的日期值中获取所需的任何格式的日期。 以下是一些可能有用的选项。

let datePickerView = UIDatePicker()
datePickerView.date = Date()
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd h:mm a"
var dateAsString = dateFormatter.string(from: datePickerView.date)
print(dateAsString)
dateFormatter.dateFormat = "MMM-yy-dd HH:mm"
dateAsString = dateFormatter.string(from: datePickerView.date)
print(dateAsString)

这给出了

2017-09-18 1:18 PM
Sep-17-18 13:18

您不需要代码的后半部分。

答案 2 :(得分:0)

您需要在dateformatter中传递datepickerview.date。 试试这个

let dateFormatter = DateFormatter()
print("Date:=\(datePickerView.date)")
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss a"
let DateIn12 = dateFormatter.string(from: datePickerView.date)  
print("12 hour formatted Date:", DateIn12)

答案 3 :(得分:0)

dateFormat =" yyyy-MM-dd h:mm a"

在24小时内获得大写时间" H"用于格式化程序 而小写" h"为您提供12小时格式的时间。

因此,您可以自己创建dateformatter,并牢记这一点。

感谢。

答案 4 :(得分:-1)

替换您的代码,将24小时日期转换为12小时格式,并使用以下代码

   let formatter = DateFormatter()
    //Formatter "yyyy-MM-dd HH:mm a" for 24 hours time
    // "yyyy-MM-dd hh:mm a" for 12 hours time
    // So you need to write only
    formatter.dateFormat = "yyyy-MM-dd hh:mm a"
    let twelveHourDate = formatter.string(from: datePickerView.date)
    print("12 hour format date is \(twelveHourDate)")