【问题标题】:How to set Date and time from UIDatePicker to UITextField in 12 hours format如何以 12 小时格式将日期和时间从 UIDatePicker 设置为 UITextField
【发布时间】:2017-09-18 12:03:35
【问题描述】:

如果系统日期是 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)

【问题讨论】:

    标签: ios iphone swift datepicker dateformatter


    【解决方案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)
    

    【讨论】:

      【解决方案2】:

      您可以从日期选择器的日期值中获取所需的任何格式的日期。 这里有几个可能会有所帮助的选项。

      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
      

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

      【讨论】:

        【解决方案3】:

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

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

        因此,您可以随时自行创建日期格式化程序,记住这一点。

        谢谢。

        【讨论】:

          【解决方案4】:

          您需要在 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)
          

          【讨论】:

          • 感谢您的回复,但我的系统日期是 24 小时,当我打印时间 Date12 时,它给出了 24 小时的时间。我需要 12 小时后的时间。
          • @user2586519 你现在可以试试我更新的答案,希望它对你有用。
          【解决方案5】:

          用以下代码替换您的代码以将 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)")
          

          【讨论】:

          • 我不知道你们为什么不赞成这个答案。为了给出这个答案,我自己在操场上实施和测试了这个方法(这需要时间),当我看到这个问题时,我尽我所能给出答案,我不知道你如何决定这是重复的, 兄弟所有的正确答案都会彼此相似。因此,如果我的答案是重复的,那么除了一个答案之外,所有答案都会重复,因为所有人都给出了相同的答案。结论:如果你不能投票,请不要投反对票,我没有从其他任何地方欺骗这个答案,我自己写的。
          猜你喜欢
          • 2015-01-09
          • 2014-04-15
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-06-10
          • 1970-01-01
          • 1970-01-01
          • 2012-02-11
          相关资源
          最近更新 更多