2012-04-13 5 views
0

文字列を日付に変換する必要があります。私は同じことを行うために日付フォーマッタを使用しています。時間が正しく返されない

コード:

NSString *stringDate = @"2010-06-21"; 

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 

[dateFormatter setDateFormat:@"yyyy-MM-dd"]; 

NSDate *theDate = [dateFormatter dateFromString:stringDate]; 

これは私前の日付はなく、私が渡された文字列の日付を示します。だから私はタイムゾーンを使ってみました。

[dateFormatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"GMT"]; 

これは私に正しい日付ですが間違った時間を与えています。

の日付のみを入力します。どのように正しい日付の結果を切り捨てる時間を取得します。事前

答えて

1

おかげでこれを試してみてください -

dateOnlyFormatter = [[NSDateFormatter alloc] init]; 
[dateOnlyFormatter setDateFormat:@"yyyy-MM-dd"]; 
[dateOnlyFormatter setLocale:enUSPOSIXLocale]; 
[dateOnlyFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"GMT"]]; 

もちろん、あなたが求めるすべてのNSDateは時間的要素を持っています - あなたはとてもように日付フォーマッタを使用する必要があります -

NSString *myDateAsString = [dateOnlyFormatter stringFromDate:theDate]; 

...文字列をdateFormatterにフィードしてゼロ時間のNSDateを得ることができます。

NSDate *myNewDate = [dateOnlyFormatter dateFromString:myDateAsString]; 
関連する問題