在一个快速的操场上,我一直在使用
NSDate.date()
Run Code Online (Sandbox Code Playgroud)
但是,这总是会附加时间元素.对于我的应用程序,我需要忽略时间元素.这在Swift中可能吗?怎么做到呢?即使我可以将时间元素设置为每个日期也同时工作.
此外,我正在尝试比较两个日期,目前我正在使用以下代码:
var earlierDate:NSDate = firstDate.earlierDate(secondDate)
Run Code Online (Sandbox Code Playgroud)
这是唯一的方法,还是可以忽略时间元素的方式?例如,如果他们是同一天,但不同的时间,我不想要结果.
我有两个NSDate对象,我想要两者之间的差异,结果应该再次是一个NSDate对象.知道怎么做到这一点?
在这里,我试图解决一个独特的问题,我必须找出经过的时间,然后本地化经过的时间.如果我在NSDate对象中有经过的时间,我可以本地化它.所以想到创建一个NSDate对象,它的时间组件与两个日期之间的时间间隔相同,这样我就可以使用NSDateFormatter对它进行本地化.
我在Xcode中保存到Core数据对象时遇到错误.
Xcode说错误是在NSDate变量'datum'中,但我几乎尝试了所有内容.错误是:
2011-07-12 18:01:29.068 WeekLijstje[3205:207] Core Data Save Error
NSValidationErrorKey datum
NSValidationErrorPredicate (null)
NSValidationErrorObject
<DagLijst: 0x6e2fcd0> (entity: DagLijst; id: 0x6e2fd30 <x-coredata:///DagLijst/t99F423FC-AAE9-4692-9264-EF0FF7A020572> ; data: {
Voedsel = nil;
datum = nil;
hoeveelheid = 0;
punten = 0;
})
NSLocalizedDescription:The operation couldn’t be completed. (Cocoa error 1570.)
Run Code Online (Sandbox Code Playgroud)
一个小代码snipet:
DagLijst *newDaglijst = [NSEntityDescription insertNewObjectForEntityForName:@"DagLijst" inManagedObjectContext:self.managedObjectContext];
NSDate *selDatum = [NSDate date];
newDaglijst.punten = [NSNumber numberWithInteger:10];
newDaglijst.hoeveelheid = [NSNumber numberWithInt:100];
newDaglijst.Voedsel = geselecteerdVoedsel;
newDaglijst.datum = selDatum;
NSError *error = nil;
if (![newDaglijst.managedObjectContext save:&error]) {
... …Run Code Online (Sandbox Code Playgroud) 我需要能够将NSDate值转换为GMT日期.
如何将NSDate值转换为GMT格式的NSDate值,与iPhone设备使用的日期区域设置无关?
我有一个NSDate对象,我想将它设置为任意时间(比如半夜),这样我可以使用timeIntervalSince1970的功能一致,而不用担心时间来检索数据时创建的对象.
我尝试使用NSCalendar一些Objective-C方法来修改它的组件,如下所示:
let date: NSDate = NSDate()
let cal: NSCalendar = NSCalendar(calendarIdentifier: NSGregorianCalendar)!
let components: NSDateComponents = cal.components(NSCalendarUnit./* a unit of time */CalendarUnit, fromDate: date)
let newDate: NSDate = cal.dateFromComponents(components)
Run Code Online (Sandbox Code Playgroud)
上述方法的问题在于您只能设置一个时间单位(/* a unit of time */),因此您只能使用下列其中一个准确度:
有没有办法同时设置小时,分钟和秒并保留日期(日/月/年)?
我有一个转换为double值的日期并保存在数据库中.现在,我想比较currentDate > myDataBaseDate + 8几小时,即我希望将8小时添加到myDataBaseDate.我正在将日期转换为双倍值.那么如何从我的数据库保存日期开始8小时后.我该如何比较
if (currentDateTime > DateFromdatabaseValue + DateByAdding8HoursInDataBase)
Run Code Online (Sandbox Code Playgroud) 我从我的服务器获取UTC时区的字符串日期,我需要将其转换为本地时区.
我的代码:
let utcTime = "2015-04-01T11:42:00.269Z"
let dateFormatter = NSDateFormatter()
dateFormatter.timeZone = NSTimeZone(name: "UTC")
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"
let date = dateFormatter.dateFromString(utcTime)
println("utc: \(utcTime), date: \(date)")
Run Code Online (Sandbox Code Playgroud)
这个印刷品 -
utc:2015-04-01T11:42:00.269Z,日期:可选(2015-04-01 11:42:00 +0000)
如果我删除
dateFormatter.timeZone = NSTimeZone(name: "UTC")
Run Code Online (Sandbox Code Playgroud)
它打印
utc:2015-04-01T11:42:00.269Z,日期:可选(2015-04-01 08:42:00 +0000)
我的当地时区是UTC +3,在第一个选项中,我在第二个选项中得到UTC,我得到了UTC -3
我应该得到
utc:2015-04-01T11:42:00.269Z,日期:可选(2015-04-01 14:42:00 +0000)
那么如何将UTC日期格式转换为本地时间?
我正在尝试弄清楚如何确定给定时间戳今天是否发生,或+1/-1天.基本上,我想做这样的事情(Pseudocode)
IF days_from_today(timestamp) == -1 RETURN 'Yesterday'
ELSE IF days_from_today(timestamp) == 0 RETURN 'Today'
ELSE IF days_from_today(timestamp) == 1 RETURN 'Tomorrow'
ELSE IF days_from_today(timestamp) < 1 RETURN days_from_today(timestamp) + ' days ago'
ELSE RETURN 'In ' + days_from_today(timestamp) + ' ago'
Run Code Online (Sandbox Code Playgroud)
至关重要的是,它需要在Swift中,我正在努力使用NSDate/NSCalendar对象.我开始研究这样的时差:
let calendar = NSCalendar.currentCalendar()
let date = NSDate(timeIntervalSince1970: Double(timestamp))
let timeDifference = calendar.components([.Second,.Minute,.Day,.Hour],
fromDate: date, toDate: NSDate(), options: NSCalendarOptions())
Run Code Online (Sandbox Code Playgroud)
然而,以这种方式进行比较并不容易,因为.Day根据一天中的时间和时间戳而不同.在PHP中,我只是使用mktime来创建一个基于一天开始的新日期(即mktime(0,0,0)),但我不确定在Swift中最简单的方法.
有没有人对如何处理这个问题有个好主意?也许NSDate或类似的东西的扩展最好?
nsdate ×10
ios ×7
swift ×5
objective-c ×4
date ×3
cocoa-touch ×2
foundation ×2
nscalendar ×2
cocoa ×1
core-data ×1
datetime ×1
gmt ×1
iphone ×1
time ×1
timezone ×1
xcode ×1