1. 程式人生 > >iOS開發:NSDate時區與格式化問題

iOS開發:NSDate時區與格式化問題

今天做到DatePicker,一個按鈕彈出選擇的日期時間,預設的NSDate Date的顯示的是格林威治標準時間GMT,在中國肯定不適用,所以要轉換為中國時區+8,然後也接觸到ios中的日期時間格式化。

貼上程式碼:

//取DatePicker選擇的日期時間
    NSDate *date = [DatePicker date];
    
    //時區轉換,取得系統時區,取得格林威治時間差秒
    //NSTimeInterval  timeZoneOffset=[[NSTimeZone systemTimeZone] secondsFromGMT];
    //NSLog(@"%f",timeZoneOffset/60.0/60.0);
    
    //date = [date dateByAddingTimeInterval:timeZoneOffset];
    
    //格式化日期時間
    NSDateFormatter *dateformatter=[[NSDateFormatter alloc] init];
    [dateformatter setDateFormat:@"現在日期:yyyy年MM月dd日 \n 現在時刻: HH:mm:ss             "];
    NSString * dateStr=[dateformatter stringFromDate:date];
    
    //警告彈出
    NSString * strDate = [[NSString alloc] initWithFormat:@"%@",dateStr] ;
    UIAlertView * tip = [[UIAlertView alloc] initWithTitle:@"選擇時間" message:strDate delegate:self cancelButtonTitle:@"確定" otherButtonTitles: nil];
    [tip show];
    [tip release];
    
    //清理
    [dateformatter release];

這裡有點疑惑的是,不加上時區轉換的程式碼,就只有格式化日期都可以自動轉換為+8時區,這是為什麼呢?

關於格式化日期的格式字串就不用說了很簡單,yyyy代表年,M代表月,d代表幾號,HH小時,mm分鐘,ss秒,這裡要提的一點是這個是區分大小寫,個數不同結果也不同,在一位的時候,比如dd是09,而d就是9。


相關推薦

iOS開發NSDate時區格式化問題

今天做到DatePicker,一個按鈕彈出選擇的日期時間,預設的NSDate Date的顯示的是格林威治標準時間GMT,在中國肯定不適用,所以要轉換為中國時區+8,然後也接觸到ios中的日期時間格式化。 貼上程式碼: //取DatePicker選擇的日期時間 N

iOS開發定時器滾動檢視的互動

定時器與滾動檢視的互動 新聞類的APP一般都有輪播圖,最常見的設計就是給輪播圖一個計時器,讓其自己每隔幾秒輪播到下一張。但如果使用者自行拖拽時計時器就應該失去響應,以使用者的手勢方法為第一響應

iOS開發圖片載入@2x@3x

myImage = [UIImage imageNamed:@"icon.png"]; 這種方法在一些圖片很少,或者圖片很小的程式裡是ok的。 但是,在大量載入圖片的程式裡,請千萬不要這樣做。 為什麼呢 ??????? 這種方法在application bundle的頂層資料夾尋找由供應的名字的圖象 。

iOS開發 Apple Developer之Provisioning Profile(Certificate) Code Signing詳解

所謂“免證書”真機除錯,並不是真的不需要證書,Xcode真機除錯原有的證書配置體系仍在——All iOS, tvOS, and watchOS appsmust be code signed and provisioned to launch on a device. 所以,上文囉嗦幾千字還是有點用的。自

iOS開發Release/Debug模式Configuration

一、release與debug模式 Debug和Release僅僅是編譯選項的不同,那麼為什麼要區分Debug和Release版本呢? Debug和Release,主要是針對其面向的目標不同的而進行區分的。 Debug通常稱為除錯版本,通過一系列編譯選項的配合,編譯

iOS開發UILabel字號根據屏幕縮放

control after call git 步驟 obj gin begin follow 場景: 假設我們有這樣一個需求,iPhone 6(屏幕寬度為375pt)上的設計圖上的字號為17pt,iPhone 6 Plus上的字號根據屏幕寬度縮放,即字號為(17pt x 4

iOS 開發Method Swizzling

是個 不足 沒有 int from ios 開發 解決方案 它的 nslog iOS 開發之Method Swizzling 前言 如果你還不知道什麽是Method Swizzling,你可以看看NSHipster 的文章 ,我簡單介紹一下,method swizzling

iOS 開發 解決Xcode7.3 不能自動索引標頭檔案,檔名等問題

iOS 開發: 解決Xcode7.3 不能自動索引標頭檔案,檔名,程式碼補全等問題 解決方案: 開啟Xcode –> Target –> BuildSettings –> Apple LLVM 7.1 -Language-Objective C 下面的 Weak

iOS 開發CocoaPods 安裝及問題 ERROR: Error installing cocoapods: activesupport requires Ruby version>=2.2.2

iOS 開發:CocoaPods 安裝以及 ERROR:  Error installing cocoapods: activesupport requires Ruby version >= 2.2.2. 今天用新的Mac筆記本安裝coco

iOS開發UITableview的多選功能實現

一、 先看效果: 最近專案中要運用即時通訊實現群組功能, 在建立群時需要選擇新增多個成員: 二、思路: 第一次點選cell選中, 再次點選取消選中; 三、方法: 只需要設定兩個屬性, 操作兩個方法即可; 1、UITableview 自帶多選功能: //允許多選 _

iOS開發環信整合步驟以及常見錯誤

環信官方文件 一、整合: 下載SDK手動整合或者CocoaPod終端整合: 下載SDK 匯入檔案以及依賴庫: 關閉Bitcode: Build Settings → Linking → Enable Bitcode 中設定 NO。 二、常

iOS開發字典(NSDictionary)和陣列( NSArray)轉換成字串

概述: 在專案開發中,總是與伺服器進行著介面的互動,傳參是不可缺少的一部分。後臺返回的j son資料我們可以很好的解析使用,但是我們如何向後臺傳送j son資料的引數呢?要知道,一般伺服器是不允許傳物件的。以下是在專案中遇到的實際問題,在此總結一下,供大家交流。 一. 字典轉字串:

iOS開發發出系統的聲音!發出自己的聲音!

這個連結非常詳盡地列舉了IOS7裡面所有的系統聲音,聲音的ID,聲音的存放位置 儘管現在已經是ios8的時代,但是系統聲音這個東東不會因此過時,畢竟聲音就那幾十種,不會一下子有太大變化。 https://github.com/TUNER88/iOSSystemSou

iOS開發UILabel字號根據螢幕縮放

場景: 假設我們有這樣一個需求,iPhone 6(螢幕寬度為375pt)上的設計圖上的字號為17pt,iPhone 6 Plus上的字號根據螢幕寬度縮放,即字號為(17pt x 414pt / 375pt)= 18.768pt 解決方案: 如果一個一個設定太麻煩,容易遺漏,這時候我們採用 runtime

iOS開發常用的UIView控制元件——UILabel、UITextField、UIButton

前面幾篇文章已經對iOS開發中比較基本的幾個檔案進行了瞭解,今天主要學習StoryBoard檔案和幾個常見的UI控制元件。 Storyboard功能是在iOS5開始新增的功能,一種新技術的出現大多是為了彌補舊技術的不足,而在storyboard之前iOS 開發設計介面是使用nib檔案(xib

iOS開發第一個iOS程式分析——AppDelegate.h檔案和檢視View、檢視控制器ViewController

在上一篇文章iOS開發:第一個iOS程式分析——代理,生命週期函式中主要介紹了iOS使用Objective-C開發的兩個主要檔案main.m和AppDelegate.m和控制程式生命週期的函式,接下來將介紹另外兩個檔案:AppDelegate.h檔案、UIViewController.m檔案和i

iOS開發第一個iOS程式分析——代理,生命週期函式

上一篇文章中我們開發了第一個iOS應用程式,用來計算兩個整數的和,今天我們將介紹其中的兩個檔案: 1.main.m檔案 首先展開supporting Files並且開啟其下的main.m檔案,其中main函式就是應用程式的入口,main函式只是標記了一個自動釋放池自動決定何時釋放記憶體,

iOS開發第一個iOS程式,加法計算器

相信很多學習程式設計的人,不管是學習C,C++,JAVA,還是iOS開發用的Objective-C,入門不久就迫切地想寫點看得見的介面玩玩。當然瞭解諸如iOS架構,系統層次這些是非常必要的,但是作為入門案例,我們不妨從最直觀的地方入手!! 下面開始編寫我們的第一個iOS程式: 1.使用的

iOS開發在專案中新增podfile配置檔案及使用cocoapods匯入第三方庫

新建一個專案中是沒有pods的配置檔案的,下面介紹一下怎麼在新建的專案工程裡面新增podfile配置檔案,以及包含xcodeproj的那個檔案的(前提是電腦上已經安裝了cocoapods,安裝過程我在另一篇文章中有寫)。 (1)新建一個Xcode專案,cd到該檔案目錄下 (2)執

iOS開發 SDWebImage 獲取快取清除快取

獲取快取:     //獲取快取圖片的大小(位元組)     NSUInteger bytesCache = [[SDImageCache sharedImageCache] getSize];     //換算成 MB (