1

我有一个NSStirng包含2013-01-08 07:52:00 +0000. 我想将日期和时间分开NSStrings

任何帮助表示赞赏。

4

4 回答 4

7

来自服务器的格式是否一致?

您是否需要将日期和时间用于排序等...或进行时间添加或只是显示它们?

如果您只是显示它们并且字符串的格式不会改变,那么您可以这样做......

//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];
于 2013-01-08T10:00:29.070 回答
3

首先要做的是将您的日期字符串转换为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];
于 2013-01-08T10:20:56.350 回答
1

试试下面的代码,

    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);

问候

于 2013-01-08T09:55:02.720 回答
0

请从该字符串创建一个日期:

NSString 到 NSDate

然后使用这些(或将它们转换回字符串)。那是节省。

无论如何,您应该在 NSString 之前有一个 NSDate - 是吗?为什么不保留那个?

于 2013-01-08T08:43:50.860 回答