2016-04-27 7 views
1

私のデータベースから文字列を返し、値は'04/27/2016 1:16 pm 'です。この値はすでにUTCです。目的c UTCへの変換文字列 - 時間がエラーで移動しています

ここでは、その文字列をNSDATEに変換して、UTCで保持したいと考えています。文字列を日付に変換しようとすると、時刻は実際には1時間ずつ移動しています。

これは私がそれを

NSString *tuploadtime = [tempDictionary valueForKey:@"uploadTime"]; 

    //date conversions 
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
    [dateFormatter setDateFormat:@"MM-dd-yyyy HH:mm:ss a"]; 
    [dateFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"UTC"]]; 

    NSDate *duploadtime = [[NSDate alloc] init]; 
    duploadtime = [dateFormatter dateFromString:tuploadtime]; 

    NSLog(@"tuploadtime=%@, duploadtime=%@", tuploadtime, duploadtime); 

をしていますどのように結果は2016年4月27日午前12時16分01秒UTCとして戻って来れています。 12:44.612 X [1558:48608] tuploadtime = 4/2016分の27 2時10分33秒PM、duploadtime = 2016年4月27日12時10 結果は

2016年4月27日10: 33 +0000

基本的に1時間後に移動していますが、同じままにしておきたいと思います。 希望私は感覚

+0

を参照してくださいより多くの日付フォーマットのため

NSString *tuploadtime = [tempDictionary valueForKey:@"uploadTime"]; NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateFormat:@"MM-dd-yyyy hh:mm:ss a"]; [dateFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"UTC"]]; NSDate *duploadtime = [[NSDate alloc] init]; duploadtime = [dateFormatter dateFromString:tuploadtime]; NSLog(@"tuploadtime=%@, duploadtime=%@", tuploadtime, duploadtime); 

のようなコードを使用する必要があり、あなたの実際のコードを貼り付けてください。 –

+0

私は実際のコードを表示するために上記で編集しました – solarissf

+1

あなたのコードはあなたの説明と一致しません。 "04/27/2016"は "MM-dd-yyyy"と一致せず、 "1:16 pm"は "HH:mm:ss a"と一致しません。また、 "2016-04-27 12:16:01 UTC"という文字列をどのように生成しているかは明確ではありません。 –

答えて

1

を作っていますあなたの日付書式文字列は矛盾している:

[dateFormatter setDateFormat:@"MM-dd-yyyy HH:mm:ss a"]; 

HHは24時間形式を使用することを意味します。しかし、AM/PMを示すのにaも使用しました。両方を使用すると、フォーマッタを混乱させ、あなたを離れて与えることになります。あなたはここでhhを使うつもりです。

+0

すぐにHHをhhに変更すると、適切な時間が返されました。ありがとうございます – solarissf

3

Proper String Format for Dateが最も重要です。 (、01のように02..24を見て)します(01-24)時間で24形式の時間を返します。

は、その違いに従うようHOURSフォーマット..

kkを持っているいくつかの方法があります。

HH(00-23)時間(00,01.23のように見えます)で24時間形式を返します。

hhは、12形式の時間(01,02.12のように表示されます)を返します。

ので、あなたがこのlink

+1

日付フォーマッタのドキュメントでAppleが参照するサイトを参照してください:[unicode.org:日付形式パターン](http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html) #Date_Format_Patterns) – vadian

関連する問題