【发布时间】:2023-03-29 18:48:01
【问题描述】:
我从服务器而不是设备日期获取我的日期。但是更改日期有问题
override func viewDidAppear(_ animated: Bool) {
datepicker2.datePickerMode = .date
datepicker2.timeZone = TimeZone(identifier: "IRST")
datepicker2.calendar = Calendar(identifier: .persian)
datepicker2.locale = Locale(identifier: "fa_IR")
datepicker2.date=self.minDate // this is a date var filled
datepicker2.addTarget(self, action: #selector(datepickerAction(_:)), for: .valueChanged)
}
每次更改日期只会打印一个日期
func datepickerAction(_ sender: UIDatePicker){
let date = self.datepicker2.date
let components = Calendar.current.dateComponents([.month, .day,.year], from: date)
let hour = components.month
let minute = components.day
let yr=components.year
print(hour,minute,yr) // prints one date always
}
这是我从服务器获得的日期:
func CurrentdateAndTime(){
let url=URL(string: "\(address)date/getNewDate")
var urlrequest=URLRequest(url: url!)
print(url)
var time:String=""
urlrequest.httpMethod = "GET"
URLSession.shared.dataTask(with: urlrequest) { (data, response, error) in
if let data=data {
let json=String(data: data, encoding: String.Encoding.utf8)
let b:Double=Double(json!)!
// if !b.isZero{
self.setComperehensiveDate(longDate: b)
self.settime(longTime: b)
self.setDay(day: b)
self.setYear(year: b)
self.setmonth(month: b)
self.setHour(longTime: b)
self.setMin(longTime: b)
self.onComplete?("ok?")
}
}.resume()
}
func setComperehensiveDate(longDate:Double){
let dbl = TimeInterval(longDate)
let date = Date(timeIntervalSince1970: dbl / 1000)
//let formatter = DateFormatter()
print("long",longDate,dbl)
// formatter.calendar = Calendar(identifier: .persian)
// formatter.locale = Locale(identifier: "fa_IR")
// formatter.timeZone = TimeZone(identifier: "IRST")
//formatter.dateFormat = "yyyy-MM-dd HH:MM:ss"
//let a = formatter.string(from: date)
// resultDate = formatter.date(from: a)
resultDate = date
print("aaa",resultDate)
}
我从服务器上设置的 func 获得毫秒,然后我得到它
我通过这种方式获得 minDate 数据:
self.minDate=getcomperehensiveDate()
更新:我的问题是,如果用户手动将他的设备日期带到过去或将来,选择器会显示我不想要的过去。我必须显示当前日期,这就是为什么我要编程设置日期并面临这个问题,那么你对这种情况有什么想法?
【问题讨论】:
-
能否添加设置
datepicker2日期的代码? -
更新我的第一篇文章
-
你能打印
self.minDate吗? -
2018-08-08 09:39:47 +0000
标签: ios swift xcode date datepicker