Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 创建NSDate并设置AM或PM_Swift_Nsdate_Nsdateformatter_Nscalendar_Nsdatecomponents - Fatal编程技术网

Swift 创建NSDate并设置AM或PM

Swift 创建NSDate并设置AM或PM,swift,nsdate,nsdateformatter,nscalendar,nsdatecomponents,Swift,Nsdate,Nsdateformatter,Nscalendar,Nsdatecomponents,在过去的4个小时里,我一直在试图解决这个问题,但似乎不知道如何解决这个问题。用户进入应用程序并在日历上选择日期。所选日期只是一个NSDate。然后,用户可以选择由hours、minutes和seconds组成的时间,然后他们可以选择AM或PM 因此,假设用户选择的时间为6:57 PM。我需要修改他们在日历上选择日期时创建的原始NSDate,并更改其时间数据以匹配用户刚刚设置的6:57 PM时间 我一直在使用NSCalendar类的datebysettingour函数,效果非常好。唯一的问题是我无

在过去的4个小时里,我一直在试图解决这个问题,但似乎不知道如何解决这个问题。用户进入应用程序并在日历上选择日期。所选日期只是一个
NSDate
。然后,用户可以选择由
hours
minutes
seconds
组成的时间,然后他们可以选择
AM
PM

因此,假设用户选择的时间为
6:57 PM
。我需要修改他们在日历上选择日期时创建的原始
NSDate
,并更改其时间数据以匹配用户刚刚设置的
6:57 PM
时间

我一直在使用
NSCalendar
类的
datebysettingour
函数,效果非常好。唯一的问题是我无法修改
AM/PM
值。我所能做的就是把时间、分和秒都浪费掉。代码如下:

calendar.dateBySettingHour(hours, minute: minutes, second: seconds, ofDate: selectedDate, options: NSCalendarOptions())
我一直在玩弄
NSDateFormatter
NSDateComponents
NSCalendar
,并在这里介绍了一些示例,但我似乎无法理解这一点

对于我来说,以
ISO 8601
日期格式创建最终日期最简单、最有效的方法是什么?该格式具有与原始
NSDate
相同的月、日和年信息,但现在也具有正确的时间信息,包括用户选择的
AM/PM
设置


我知道通过设置您的日期来使用
是不可能的,但在这一点上我愿意尝试任何事情。

您能将“小时+12”传递给PM吗?

Xcode 8.3.2•Swift 3.1

let date = Date()
let hour = 6
let minute = 57
let second = 0
let pm = true

let hours24 = hour == 12 &&  pm ?   12 :
              hour == 12 && !pm ?    0 :
                            !pm ? hour : hour + 12

let dateWithHour = Calendar.current.date(bySettingHour: hours24, minute: minute, second: second, of: date)   // Jun 4, 2017, 6:57 PM"

用户如何选择时间?使用
UIDatePicker
?或者其他方式?为什么不在用户选择PM时增加12个小时?哇,是时候睡觉了,离开显示器了我想虽然这个答案很简短,只是一个问题,但这个答案显然为用户3344977提供了一个解决问题的方法,基本上,和公认的答案一样(发布时间比此答案晚了一分钟)。