2004-02-12T15:19:21+00:00
在PHP中获取ISO 8601日期字符串(例如)很容易date('c')
,但是如何在Objective-C(iPhone)中获取它?是否有类似的简短方法呢?
这是我发现的漫长道路:
NSDateFormatter* dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
dateFormatter.dateFormat = @"yyyy-MM-dd'T'HH:mm:ssZ";
NSDate *now = [NSDate date];
NSString *formattedDateString = [dateFormatter stringFromDate:now];
NSLog(@"ISO-8601 date: %@", formattedDateString);
// Output: ISO-8601 date: 2013-04-27T13:27:50-0700
Run Code Online (Sandbox Code Playgroud)
对于如此重要的事情来说,这似乎是一件非常艰难的事情.
似乎我不能从当前日期减去7天.这就是我这样做的方式:
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *offsetComponents = [[NSDateComponents alloc] init];
[offsetComponents setDay:-7];
NSDate *sevenDaysAgo = [gregorian dateByAddingComponents:offsetComponents toDate:[NSDate date] options:0];
Run Code Online (Sandbox Code Playgroud)
SevenDaysAgo获得与当前日期相同的价值.
请帮忙.
编辑:在我的代码中,我忘了用正确的日期替换当前日期的变量.所以上面的代码是有用的.
如何在Swift 3中设置label.text当前日期?
我想今天打印到屏幕上.我没有找到怎么做.
在c#中非常简单:
var date = DateTime.Now
Run Code Online (Sandbox Code Playgroud)
我需要在swift 3中写15.09.2016.谢谢
我有一个NSDate
,我必须和另外两个比较NSDate
,我试着用NSOrderAscending
和NSOrderDescending
,但如果我的日期是在其他两个日期平等吗?
示例:如果我有一个myDate = 24/05/2011
和另外两个是一个= 24/05/2011
和两个24/05/2011
我可以使用什么?
我想得到NSDate
整数形式的日,月和年组件,即如果日期是1/2/1988那么我应该分别得到1,2和1988作为整数.我怎么能在iOS中这样做?我发现了类似的问题,但方法是descriptionWithCalendarFormat
:给出警告,现在似乎已被弃用了.
看起来像一个简单的事情,但我似乎无法找到一种方法来做到这一点.
看到几种不同的方法会很棒.
-(NSDate *)beginningOfDay:(NSDate *)date
{
NSCalendar *cal = [NSCalendar currentCalendar];
NSDateComponents *components = [cal components:( NSMonthCalendarUnit | NSYearCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit ) fromDate:date];
[components setHour:0];
[components setMinute:0];
[components setSecond:0];
return [cal dateFromComponents:components];
}
-(NSDate *)endOfDay:(NSDate *)date
{
NSCalendar *cal = [NSCalendar currentCalendar];
NSDateComponents *components = [cal components:( NSMonthCalendarUnit | NSYearCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit ) fromDate:date];
[components setHour:23];
[components setMinute:59];
[components setSecond:59];
return [cal dateFromComponents:components];
}
Run Code Online (Sandbox Code Playgroud)
当我打电话:[self endOfDay:[NSDate date]]; 我得到了本月的第一天......为什么?我使用这两种方法,因为我需要一个从第一个日期的第一秒开始的间隔(beginningOfDay:date1)到第二个日期的最后一秒(endOfDay:Date2)......
我正在写一段代码,我想要按下按钮的时间.为此,我NSDate()
在按下按钮时录制了一个按钮,并timeIntervalSinceDate
在释放按钮时尝试使用该功能.这似乎工作,但我找不到任何方法来打印结果或将其切换为整数.
var timeAtPress = NSDate()
@IBAction func pressed(sender: AnyObject) {
println("pressed")
timeAtPress = NSDate()
}
@IBAction func released(sender: AnyObject) {
println("released")
var elapsedTime = NSDate.timeIntervalSinceDate(timeAtPress)
duration = ???
}
Run Code Online (Sandbox Code Playgroud)
我见过几个类似的问题,但我不知道C所以我很难理解给出的答案.如果有更有效的方法来确定按钮被按下多长时间,我愿意接受建议.提前致谢.
我试图使用NSDate判断当前日期是否在日期范围内.
例如,您可以使用NSDate获取当前日期/时间:
NSDate rightNow = [NSDate date];
Run Code Online (Sandbox Code Playgroud)
然后我想用那个日期来检查它是否在上午9点到下午5点之间.
nsdate ×10
ios ×5
objective-c ×4
swift ×3
cocoa-touch ×2
date ×2
datetime ×2
cocoa ×1
iphone ×1
iso8601 ×1
nscalendar ×1