iOS 時(shí)間格式化(Date Formatters)

首先帖一下官方的文檔: https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/DataFormatting/Articles/dfDateFormatting10_4.html

APP展示給用戶的時(shí)候,時(shí)間肯定都是以字符串的形式. 服務(wù)器返回的時(shí)間也是以字符串的格式. 但是從服務(wù)器拿回來的時(shí)間一般都需要經(jīng)過一個(gè)轉(zhuǎn)換才能使用.服務(wù)器返回的格式:"162000"或者"2005-07-01 12:00:00 -0700", iOS中需要借助NSDate來處理

時(shí)間的格式化主要2步:

  1. 從字符串轉(zhuǎn)換成NSDate
  2. 從NSDate轉(zhuǎn)換成特定格式的字符串

轉(zhuǎn)換的中間需要使用 NSDateFormatter,這個(gè)類專門用來設(shè)置NSDate的格式

1.從字符串轉(zhuǎn)成NSDate

如果服務(wù)器返回的格式是: "162000"

NSDate *date = [NSDate dateWithTimeIntervalSinceReferenceDate:162000];

如果服務(wù)器返回的格式是: "2005-07-01 12:00:00 -0700"

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss";
NSDate *date = [formatter dateFromString:model.latestTime];

2.從NSDate轉(zhuǎn)換成特定格式的字符串

[formatter stringFromDate:date];

其實(shí)跳到NSDateFormatter這個(gè)類里面去看,并沒有太多的東西

  • (NSString *)stringFromDate:(NSDate *)date;
  • (nullable NSDate *)dateFromString:(NSString *)string;
    看名稱就很明顯能理解函數(shù)的作用了

時(shí)間的格式

常用的幾個(gè)
yyyy-MM-dd HH:mm:ss.SSS
yyyy-MM-dd HH:mm:ss
yyyy-MM-dd

||
|:---:|:---:|
|y|年|
|M|月|
|d|日|
|H|小時(shí)(0-23)|
|h|小時(shí)(1-12)
|m|分鐘|
|s|秒|
|S|毫秒|

unicode標(biāo)準(zhǔn)文檔
http://unicode.org/reports/tr35/#Date_Format_Patterns

每次用到都是重新去查一遍,簡(jiǎn)單總結(jié)一下,備用

項(xiàng)目中為了與Android相配合.要獲取到時(shí)間戳里的毫秒單位:
獲取方法:

UInt64 recordTime = [[NSDate date] timeIntervalSince1970]*1000;

首先 [[NSDate date] timeIntervalSince1970] 是可以獲取到后面的毫秒 微秒的 ,只是在保存的時(shí)候省略掉了,所以想取得毫秒時(shí)用獲取到的時(shí)間戳 *1000 ,想取得微秒時(shí) 用取到的時(shí)間戳 * 1000 * 1000 。

參考文章:
http://blog.csdn.net/imanapple/article/details/43447825
http://blog.csdn.net/gilnuy0106/article/details/8451911

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 在iOS開發(fā)中,經(jīng)常會(huì)遇到各種各樣的時(shí)間問題,8小時(shí)時(shí)差,時(shí)間戳,求時(shí)間間隔,農(nóng)歷等等。解決辦法網(wǎng)上比比皆是,但大...
    真巧了_嘿閱讀 2,917評(píng)論 0 7
  • 在IOS中關(guān)于時(shí)間的問題比較常見,經(jīng)常會(huì)用來獲取當(dāng)前時(shí)間,或者根據(jù)當(dāng)前時(shí)間去獲取某個(gè)時(shí)間點(diǎn) 本文是關(guān)于時(shí)間與日期的...
    這位網(wǎng)友閱讀 10,241評(píng)論 0 9
  • 在開發(fā)iOS程序時(shí),有時(shí)候需要將時(shí)間格式調(diào)整成自己希望的格式,這個(gè)時(shí)候我們可以用NSDateFormatter類來...
    Rickie_Lambert閱讀 1,497評(píng)論 0 0
  • iOS開發(fā)中,經(jīng)常會(huì)遇到各種各樣的時(shí)間問題,8小時(shí)時(shí)差,時(shí)間戳,求時(shí)間間隔,農(nóng)歷等等。解決辦法網(wǎng)上比比皆是,但大多...
    小李龍彪閱讀 6,741評(píng)論 1 6
  • 宿命式的選擇 人常說,選擇決定成敗。 同等資質(zhì),因?yàn)檫x擇不同,境遇大相徑庭。 當(dāng)年孫正義選...
    玄明言說閱讀 512評(píng)論 0 0

友情鏈接更多精彩內(nèi)容