-1

ローカル デバイスの時間を取得して、文字列オブジェクトに割り当てるのが好きです。

NSDate* currentDate = [NSDate date];
NSDateFormatter *dateformatter=[[NSDateFormatter alloc]init];
[dateformatter setDateFormat:@"d MMMM , yyyy"];
self.dateSting=[[NSMutableString alloc]init];
self.dateSting = [NSMutableString stringWithFormat:@"%@" ,[dateformatter stringFromDate:currentDate]];

受信した出力 = 2013 年 3 月 6 日

以下のオブジェクトバックコードNSStringに変換NSDate

NSDateFormatter *uu=[[NSDateFormatter alloc]init];
[uu setDateFormat:@"d MMMM , yyyy"];

NSDate *yy=[uu dateFromString:self.dateSting];

output recived=2013-03-05 18:30:00 +0000 日以内に差が出ます。

4

3 に答える 3

4

さて、解決策はかなり簡単です。NSDate常にGMTを表示します。また、あなたのプロフィールから、あなたの現在地はインドであり、ローカル タイム ゾーンは GMT +5.30 時間であることがわかります。

得られた現在の出力は2013-03-05 18:30:00 +0000、5.30hrs を追加すると、 になります2013-03-06 00:00:00 +0000NSDateの最後に のようなものが表示されることに注意してください+0000。これはタイムゾーンを示しています。

これがあなたの質問の理由/解決策です。解決方法を知りたい場合は、ここに答えがあります

すべてが明確になったことを願っています。

于 2013-03-06T06:11:01.620 に答える
1

このようなことを試してください。

NSDate* currentDate = [NSDate date];
NSLog(@"%@",currentDate);
NSDateFormatter *dateformatter=[[NSDateFormatter alloc]init];
[dateformatter setDateFormat:@"d MMMM hh:mm:ss, yyyy"];

NSLog(@"%@",[dateformatter stringFromDate:currentDate]);

NSDate *yy=[dateformatter dateFromString:[dateformatter stringFromDate:currentDate]];
NSLog(@"%@",yy);

NSDateFormatter *uu=[[NSDateFormatter alloc]init];
[uu setDateFormat:@"d MMMM , yyyy"];

NSLog(@"%@",[uu stringFromDate:yy]);

日付と時刻の違いは、GMT オフセットが原因で発生します。NSLogging NSDate は、オフセットで時間を提供します。オフセットは、日付に加算または減算する値を示します。インドでは+5.30。オフセットの詳細が欠落している場合、実際の日付が変更される可能性があるため、必ずオフセットの詳細を保持してください。お役に立てれば。

于 2013-03-06T06:21:58.833 に答える
0

dateWithString: 国際文字列表現形式 (YYYY-MM-DD HH:MM:SS ±HHMM) の特定の文字列で指定された日付と時刻の値を持つ NSDate オブジェクトを作成して返します。

  • (id)dateWithString:(NSString *)aString パラメーター aString 国際文字列表現形式で日付と時刻の値を指定する文字列 — YYYY-MM-DD HH:MM:SS ±HHMM。ここで、±HHMM はタイム ゾーン オフセットです。 GMT からの時間と分 (たとえば、「2001-03-24 10:45:32 +0600」)。タイム ゾーン オフセットを含め、フォーマット文字列のすべてのフィールドを指定する必要があります。タイム ゾーン オフセットには、プラス記号またはマイナス記号のプレフィックスが必要です。
于 2013-03-06T06:12:17.563 に答える