簡體   English   中英

如何從Iphone上的Objective C中的UNIX時間戳獲取日,月,年,小時,分鍾,秒

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM