0

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

    let dateFormatter = DateFormatter()
    dateFormatter.dateFormat = "yyyy-MM-dd HH:mm"
    let dateAsString = dateFormatter.string(from: datePickerView.date)

    dateFormatter.dateFormat = "yyyy-MM-dd h:mm a"
    let date = dateFormatter.date(from: dateAsString)
    let DateIn12 = dateFormatter.string(from: date!)
    print("12 hour formatted Date:", DateIn12)
4

5 回答 5

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)
于 2017-09-18T12:13:50.390 回答
0

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

要获取 24 小时格式的时间,格式化程序中使用大写的“H”,而小写的“h”为您提供 12 小时格式的时间。

因此,您可以牢记这一点,每次都自行创建日期格式化程序。

谢谢。

于 2017-09-18T14:49:09.140 回答
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)
于 2017-09-18T12:28:40.757 回答
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

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

于 2017-09-18T12:21:56.517 回答
-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)")
于 2017-09-18T13:19:02.047 回答