[英]How to get day, month, year, hours, minutes, seconds from a UNIX timestamp in Objective C on Iphone
我一直在網上瀏覽各種參考文檔和示例,但是我無法了解如何獲得目標C中給定時間戳記的日,月,年,小時,分鍾。想法? 我用於此目的的代碼如下所示:
NSDate *date = [NSDate dateWithTimeIntervalSince1970:1286181000]; unsigned int compFlags = NSHourCalendarUnit | NSMinuteCalendarUnit | NSDayCalendarUnit | NSMonthCalendarUnit; NSDateComponents *weekdayComponents = [[NSCalendar currentCalendar] components:compFlags fromDate:date]; NSLog(@"%d %d, %d:%d", [weekdayComponents day], [weekdayComponents month], [weekdayComponents hour], [weekdayComponents minute]); [date release]; [weekdayComponents release];
盡管時間戳記是10月的一天,但輸出顯示的是12月19日。
// for age validation (dynamic age in date picker for 18-100 year)
NSDate *today = [NSDate date];
NSDateComponents *dc_min = [[[NSDateComponents alloc] init] autorelease];
[dc_min setYear:-100];
NSCalendar *cal_min = [[[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar] autorelease];
NSDate *pastDate_min = [cal_min dateByAddingComponents:dc_min toDate:today options:0];
[datePicker setMinimumDate:pastDate_min];
NSDateComponents *dc_max = [[[NSDateComponents alloc] init] autorelease];
[dc_max setYear:-18];
NSCalendar *cal_max = [[[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar] autorelease];
NSDate *pastDate_max = [cal_max dateByAddingComponents:dc_max toDate:today options:0];
[datePicker setMinimumDate:pastDate_min];
[datePicker setMaximumDate:pastDate_max];
[datePicker setDate:[datePicker maximumDate]];
[datePicker addTarget:self action:@selector(dateChanged:) forControlEvents:UIControlEventValueChanged];
dateWithTimeIntervalSince1970:
的文檔dateWithTimeIntervalSince1970:
說:
從BSD系統函數返回的
time_t
值創建NSDate
對象時,此方法很有用。
您能顯示給您那個神奇數字1286181000
的代碼嗎? 即您是否使用time_t
值?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.