你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> iOS時間相關各種技巧

iOS時間相關各種技巧

編輯:IOS開發綜合
一、通過自帶的日歷得到年月日、時間、以及星期
NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDate *now;
NSDateComponents *comps = [[NSDateComponents alloc] init];
NSInteger unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSWeekdayCalendarUnit | 
                                         NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit;
now=[NSDate date];
comps = [calendar components:unitFlags fromDate:now];
week = [comps weekday];    
month = [comps month];
day = [comps day];
hour = [comps hour];
min = [comps minute];
sec = [comps second];

二、世界標准時間UTC /GMT 轉為當前系統時區對應的時間

 

- (NSDate *)getNowDateFromatAnDate:(NSDate *)anyDate
{
    //設置源日期時區
    NSTimeZone* sourceTimeZone = [NSTimeZone timeZoneWithAbbreviation:@UTC];//或GMT
    //設置轉換後的目標日期時區
    NSTimeZone* destinationTimeZone = [NSTimeZone localTimeZone];
    //得到源日期與世界標准時間的偏移量
    NSInteger sourceGMTOffset = [sourceTimeZone secondsFromGMTForDate:anyDate];
    //目標日期與本地時區的偏移量
    NSInteger destinationGMTOffset = [destinationTimeZone secondsFromGMTForDate:anyDate];
    //得到時間偏移量的差值
    NSTimeInterval interval = destinationGMTOffset - sourceGMTOffset;
    //轉為現在時間
    NSDate* destinationDateNow = [[[NSDate alloc] initWithTimeInterval:interval sinceDate:anyDate] autorelease];
    return destinationDateNow;
}

三、NSString格式轉化為NSDate

 

 

- (NSDate *)stringToDate:(NSString *)strdate
{
    NSDateFormatter *dateFormatter = [[NSDateFormatteralloc] init];
    [dateFormatter setDateFormat:@yyyy-MM-dd HH:mm:ss];// NSString的時間格式
    NSDate *retdate = [dateFormatter dateFromString:strdate];
    [dateFormatter release];
    return retdate;
}
四、NSDate轉化為NSString

 

 

- (NSString *)dateToString:(NSDate *)date
{
    NSDateFormatter *dateFormatter = [[NSDateFormatteralloc] init];
    [dateFormatter setDateFormat:@yyyy-MM-dd HH:mm:ss];
    NSString *strDate = [dateFormatter stringFromDate:date];
    [dateFormatter release];
    return strDate;
}

五、將本地日期字符串轉為UTC日期字符串

 

 

//本地日期格式:2013-08-03 12:53:51
//可自行指定輸入輸出格式
-(NSString *)getUTCFormateLocalDate:(NSString *)localDate
{
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    //輸入格式
    [dateFormatter setDateFormat:@yyyy-MM-dd HH:mm:ss];
    
    NSDate *dateFormatted = [dateFormatter dateFromString:localDate];
    NSTimeZone *timeZone = [NSTimeZone timeZoneWithName:@UTC];
    [dateFormatter setTimeZone:timeZone];
    //輸出格式
    [dateFormatter setDateFormat:@yyyy-MM-dd'T'HH:mm:ssZ];
    NSString *dateString = [dateFormatter stringFromDate:dateFormatted];
    [dateFormatter release];
    return dateString;
}

六、將UTC日期字符串轉為本地時間字符串

 

 

//輸入的UTC日期格式2013-08-03T04:53:51+0000
-(NSString *)getLocalDateFormateUTCDate:(NSString *)utcDate
{
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    //輸入格式
    [dateFormatter setDateFormat:@yyyy-MM-dd'T'HH:mm:ssZ];
    NSTimeZone *localTimeZone = [NSTimeZone localTimeZone];
    [dateFormatter setTimeZone:localTimeZone];
    
    NSDate *dateFormatted = [dateFormatter dateFromString:utcDate];
    //輸出格式
    [dateFormatter setDateFormat:@yyyy-MM-dd HH:mm:ss];
    NSString *dateString = [dateFormatter stringFromDate:dateFormatted];
    [dateFormatter release];
    return dateString;
}

七、iOS開發之格式化日期時間

 

字符說明

(:)時間分隔符。在某些區域設置中,可以使用其他字符表示時間分隔符。時間分隔符在格式化時間值時分隔小時、分鐘和秒。格式化輸出中用作時間分隔符的實際字符由您的應用程序的當前區域性值確定。

(/)日期分隔符。在某些區域設置中,可以使用其他字符表示日期分隔符。日期分隔符在格式化日期值時分隔日、月和年。格式化輸出中用作日期分隔符的實際字符由您的應用程序的當前區域性確定。

(%)用於表明不論尾隨什麼字母,隨後字符都應該以單字母格式讀取。也用於表明單字母格式應以用戶定義格式讀取。有關更多詳細信息,請參見下面的內容。

d將日顯示為不帶前導零的數字(如 1)。如果這是用戶定義的數字格式中的唯一字符,請使用 %d。

dd將日顯示為帶前導零的數字(如 01)。

EEE將日顯示為縮寫形式(例如 Sun)。

EEEE將日顯示為全名(例如 Sunday)。

M將月份顯示為不帶前導零的數字(如一月表示為 1)。如果這是用戶定義的數字格式中的唯一字符,請使用 %M。

MM將月份顯示為帶前導零的數字(例如 01/12/01)。

MMM將月份顯示為縮寫形式(例如 Jan)。

MMMM將月份顯示為完整月份名(例如 January)。

gg顯示時代/紀元字符串(例如 A.D.)

h使用 12 小時制將小時顯示為不帶前導零的數字(例如 1:15:15 PM)。如果這是用戶定義的數字格式中的唯一字符,請使用 %h。

hh使用 12 小時制將小時顯示為帶前導零的數字(例如 01:15:15 PM)。

H使用 24 小時制將小時顯示為不帶前導零的數字(例如 1:15:15)。如果這是用戶定義的數字格式中的唯一字符,請使用 %H。

HH使用 24 小時制將小時顯示為帶前導零的數字(例如 01:15:15)。

m將分鐘顯示為不帶前導零的數字(例如 12:1:15)。如果這是用戶定義的數字格式中的唯一字符,請使用 %m。

mm將分鐘顯示為帶前導零的數字(例如 12:01:15)。

s將秒顯示為不帶前導零的數字(例如 12:15:5)。如果這是用戶定義的數字格式中的唯一字符,請使用 %s。

ss將秒顯示為帶前導零的數字(例如 12:15:05)。

f顯示秒的小數部分。例如,ff 將精確顯示到百分之一秒,而 ffff 將精確顯示到萬分之一秒。用戶定義格式中最多可使用七個 f 符號。如果這是用戶定義的數字格式中的唯一字符,請使用 %f。

t使用 12 小時制,並對中午之前的任一小時顯示大寫的 A,對中午到 11:59 P.M 之間的任一小時顯示大寫的 P。如果這是用戶定義的數字格式中的唯一字符,請使用 %t。

tt對於使用 12 小時制的區域設置,對中午之前任一小時顯示大寫的 AM,對中午到 11:59 P.M 之間的任一小時顯示大寫的 PM。對於使用 24 小時制的區域設置,不顯示任何字符。

y將年份 (0-9) 顯示為不帶前導零的數字。如果這是用戶定義的數字格式中的唯一字符,請使用 %y。

yy以帶前導零的兩位數字格式顯示年份(如果適用)。

yyy以四位數字格式顯示年份。

yyyy以四位數字格式顯示年份。

z顯示不帶前導零的時區偏移量(如 -8)。如果這是用戶定義的數字格式中的唯一字符,請使用 %z。

zz顯示帶前導零的時區偏移量(例如 -08)

zzz顯示完整的時區偏移量(例如 -08:00)

格式顯示

M/d/yy 12/7/58

d-MMM 7-Dec

d-MMMM-yy 7-December-58

d MMMM 7 December

MMMM yy December 58

hh:mm tt 08:50 PM

h:mm:ss t 8:50:35 P

H:mm 20:50

H:mm:ss 20:50:35

 


 

 

 

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved