我有一个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 - 是吗?为什么不保留那个?