をNSStirng
含む があります2013-01-08 07:52:00 +0000
。日付と時刻を別々に分けたいと思いますNSStrings
。
どんな助けでも大歓迎です。
をNSStirng
含む があります2013-01-08 07:52:00 +0000
。日付と時刻を別々に分けたいと思いますNSStrings
。
どんな助けでも大歓迎です。
サーバーからのフォーマットは一貫していますか?
日付と時刻を並べ替えなどに使用する必要がありますか、それとも時間の加算を行うために使用する必要がありますか、それとも単に表示するだけですか?
それらを表示しているだけで、文字列の形式が変更されない場合は、これを行うことができます...
//assumption 1: the format is <date>space<time>space<timezone>
//assumption 2: the only purpose is to display the values sent from the server.
NSString *dateString = @"2013-01-08 07:52:00 +0000";
NSArray *components = [dateString componentsSeparatedByString:@" "];
NSString *date = components[0];
NSString *time = components[1];
NSDate
最初に行うことは、日付文字列を:に変換することです。
NSDateFormatter * formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd hh:mm:ss Z"];
NSDate * date = [formatter dateFromString: @"2013-01-08 07:52:00 +0000"];
次に、フォーマッタを再度使用して、プロセスを逆にし、日付と時刻を返すことができます。必要に応じて、それぞれの形式を調整できます。
[formatter setTimeStyle:NSDateFormatterShortStyle]; // Get the time only
[formatter setDateStyle:NSDateFormatterNone];
NSString * timeString = [formatter stringFromDate: date];
[formatter setTimeStyle:NSDateFormatterNone];
[formatter setDateStyle:NSDateFormatterShortStyle]; // Get the date only
NSString * dateString = [formatter stringFromDate: date];
以下のコードを試してください。
NSString *maindateString = @"2013-01-08 07:52:00 +0000";
NSDateFormatter *myFormat = [[NSDateFormatter alloc] init];
[myFormat setDateFormat:@"yyyy-mm-dd hh:mm:ss Z"];
NSDate *mainDateDate = [myFormat dateFromString:maindateString];
[myFormat setDateFormat:@"yyyy-mm-dd"];
NSString *stringDate = [myFormat stringFromDate:mainDateDate];
NSString
stringDateを確認すると、必要なものがあります:-)
編集: 時間文字列を取得するには、次のコードを追加します。
NSDateFormatter *myFormat2 = [[NSDateFormatter alloc] init];
[myFormat2 setDateFormat:@"HH:mm:ss"];
NSString *stringTime = [myFormat2 stringFromDate:mainDateDate];
NSLog(@"%@",stringTime);
よろしく
その文字列から日付を作成してください:
次に、これらを使用します(または文字列に変換します)。それは保存です。
とにかく、その NSString の前に NSDate があったはずです-そうでしたか? なぜそれを保持しないのですか?