2016-04-27 5 views
-1

これは前に尋ねられましたが、私はそれらの質問に対する答えを理解できませんでした。だから私は文字列2016-01-04T00:00:00-5:00を持って、私はメソッドにパラメータとして渡されるこの文字列から時間を私に与えるメソッドを記述しようとしています。NSDateから唯一の時間を得る

-(void) convertTime:(NSString *)dateString 
{ 
    NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init]; 
    dateFormatter.dateFormat = @"yyyy-MM-dd'T'HH:mm:ssZ:z"; 
    NSDate *yourDate = [dateFormatter dateFromString:dateString]; 
    dateFormatter.dateFormat = @"HH:mm:ss"; 
    NSLog(@"%@",[dateFormatter stringFromDate:yourDate]); 
} 

これはログにはわかりません。05:30:00これはわかりません。誰かがこれで私を助けることができますか?前の投稿の他のすべての答えは、同様の方法を使用していますが、何らかの理由で私は必要な出力を得るためにこの正しい方法を見つけることができません。どんな助けもありがとう。ありがとう。

+0

正常に動作していると思うことがあるあなたは何を理解していませんか?あなたはなぜ日付がロギングされている時間が5.5時間ずれているのか分かりません。もしそれが質問のタイトルと一致しないなら、とにかく... – trojanfoe

+0

@trojanfoe - なぜ出力05:30:00は、私が得なかったものです。 – TKutal

+0

まあ 'NSLog()'はUTCのタイムゾーンで 'NSDate'の時刻を表示しますが(これはよく書かれています)、' -5:00'タイムゾーンに入力された日付がなぜ表示されるのか説明しません「-5:30」ではない。それが正しい入力文字列ですか? – trojanfoe

答えて

0

日付フォーマッタは

dateFormatter.dateFormat = @"HH:mm:ss a"; 

あなたがここに5時間によって相殺怒鳴るライン

"yyyy-MM-dd'T'HH:mm:ssZ:z 
"year-month-day'Time' hour:minute:second 'GMT'" 

Z -> difference for Greenwich Mean Time 
for India it is -5 hours 
for Bangladesh it is -6 hours 
for Japan it is -3 hours 

T -> date and time seperator 
2

の詳細を見つけることができます午前/午後を持っている必要がありますので、あなたの携帯電話のロケールは次のとおりです。UTCの先に5時間。 -5:00によって示される。


また、それは、出力時間がローカライズされます

NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 
formatter.timeStyle = NSDateFormatterShortStyle; 
formatter.dateStyle = NSDateFormatterNoStyle; 

NSLog(@"%@", [formatter stringFromDate:[[NSDate alloc] init]]); 

ようtimeStyleといるdateStyleを使用することができます。 24時間のロケールでは、それは出力12時間のロケールに

14:51 

は、それはあなたがロケールを強制したい場合は、カスタム1つのビューNSDateFormatter`sロケールのプロパティを設定することができ

2:51 PM 

になります。遊び場

から


スウィフトバージョン

let formatter = NSDateFormatter() 
formatter.timeStyle = .ShortStyle 
formatter.dateStyle = .NoStyle 

formatter.stringFromDate(NSDate()) 
+1

マイナーノート:「GMTの背後にある」は「UTCよりも先に」あるはずです。 –

+0

@NikolaiRuhe true、ありがとう – vikingosegundo

0

PLZはUTCとISTの時間差を再確認します。

インド標準時5時間30分先に協定世界時の

あるので、私はあなたの関数が

関連する問題