如何解决如何快速将日期和时间分别发送到后端?
fromDateLabel.text
从datepicker获取日期和时间。我需要将日期和时间分别发送到后端
当我正确执行DateFormatter
日期但我 n时间时,只有两位数字有效,这意味着时间需要10、11、12点。如果我认为1,2,3,4,5不起作用
代码:此处单位时间无效
var fromDateArr = fromDateLabel.text!.components(separatedBy: ",")
fromDate = fromDateArr[0]
fromTime = fromDateArr[1].replacingOccurrences(of: " ",with: "")
let inputFormatter = DateFormatter()
inputFormatter.dateFormat = "MM/dd/yy"
let showDateFrom = inputFormatter.date(from: fromDate)
inputFormatter.dateFormat = "dd-MM-yyyy"
formateFromdate = inputFormatter.string(from: showDateFrom!)
print("formate from date \(formateFromdate)")
如果我像下面这样安排日期和时间,则无济于事
let fromDate = fromDateLabel.text!
let inputFormatter = DateFormatter()
inputFormatter.dateFormat = "MM/dd/yy,hh:mm:ssa"
guard let showDateFrom = inputFormatter.date(from: fromDate) else { return }
inputFormatter.dateFormat = "MM/dd/yyyy" // -> to get date only
formateFromdate = inputFormatter.string(from: showDateFrom)
print("from date: ",formateFromdate)
inputFormatter.dateFormat = "hh:mm a" // -> to get time only
formateFromTime = inputFormatter.string(from: showDateFrom)
print("from time")
如何将日期和时间分别发送到后端.. 1到12小时时间
注意:如果是8点钟,那么输出时间应该是08:15,而不是8:15。这就是问题所在。请帮助我提供代码
解决方法
设计
import UIKit
class ViewController: UIViewController{
@IBOutlet weak var txtdate: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
self.txtdate.setInputViewDatePicker(target: self,selector: #selector(tapDone)) //1
}
@objc func tapDone() {
if let datePicker = self.txtdate.inputView as? UIDatePicker {
let dateformatter = DateFormatter()
dateformatter.dateFormat = "MM/dd/yy,hh:mm a"
self.txtdate.text = dateformatter.string(from: datePicker.date)
}
self.txtdate.resignFirstResponder()
}
@IBAction func showClk(_ sender: Any) {
let fromDate = txtdate.text!
print(fromDate)
let inputFormatter = DateFormatter()
inputFormatter.dateFormat = "MM/dd/yy,hh:mm a"
guard let showDateFrom = inputFormatter.date(from: fromDate) else { return }
inputFormatter.dateFormat = "MM/dd/yyyy" // -> to get date only
let formateFromdate = inputFormatter.string(from: showDateFrom)
print("from date: ",formateFromdate)
inputFormatter.dateFormat = "hh:mm a" // -> to get time only
let formateFromTime = inputFormatter.string(from: showDateFrom)
print("from time",formateFromTime)
}
}
extension UITextField {
func setInputViewDatePicker(target: Any,selector: Selector) {
// Create a UIDatePicker object and assign to inputView
let screenWidth = UIScreen.main.bounds.width
let datePicker = UIDatePicker(frame: CGRect(x: 0,y: 0,width: screenWidth,height: 216))//1
datePicker.datePickerMode = .date
self.inputView = datePicker
// Create a toolbar and assign it to inputAccessoryView
let toolBar = UIToolbar(frame: CGRect(x: 0.0,y: 0.0,height: 44.0))
let flexible = UIBarButtonItem(barButtonSystemItem: .flexibleSpace,target: nil,action: nil)
let cancel = UIBarButtonItem(title: "Cancel",style: .plain,action: #selector(tapCancel))
let barButton = UIBarButtonItem(title: "Done",target: target,action: selector)
toolBar.setItems([cancel,flexible,barButton],animated: false)
self.inputAccessoryView = toolBar
}
@objc func tapCancel() {
self.resignFirstResponder()
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。