0

我认为我以错误的方式使用 NSDateFormatter。我有一个 UIDatePicker。当我选择一个日期时,我的日标签、月标签、年标签和时间标签被设置。

当我单击保存按钮时,我会使用此标签建立一个日期并将其发送到我的服务器。我这样做。

 NSString *dateStringBegin = [NSString stringWithFormat:@"%@ %@ %@ %@",lblBeginDay.text,lblBeginMonth.text,lblBeginYear.text,lblBeginTime.text];

//LOG dateStringBegin =  7 februari 2013 11:21

但我的服务器只接受一个看起来像这样的字符串2013-02-07 11:21

现在我正在代码中执行此操作。

 NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
    [dateFormat setDateFormat:@"d MMMM YYYY hh:mm"];
    NSDate* date = [dateFormat dateFromString:dateStringBegin];

    NSDateFormatter *dateFormat2 = [[NSDateFormatter alloc] init];
    [dateFormat2 setDateFormat:@"YYYY-MM-dd HH:mm"];
    NSString *dateStringBegin2 =  [dateFormat2 stringFromDate:date];

现在,当我查看我的 dateStringBegin2 的样子时,我看到了这一点。

//LOG dateStringBegin2 = 2013-12-28 11:21
4

3 回答 3

0

改变 :

[dateFormat setDateFormat:@"d MMMM YYYY hh:mm"];
[dateFormat2 setDateFormat:@"YYYY-MM-dd HH:mm"];

至 :

[dateFormat setDateFormat:@"d MMMM yyyy hh:mm"];
[dateFormat2 setDateFormat:@"yyyy-MM-dd HH:mm"];

这里的问题是,yyyy 用于指定年份组件。一个常见的错误是使用 YYYY。yyyy 指定日历年,而 YYYY 指定年份(“一年中的一周”),用于 ISO 年-周日历。在大多数情况下,yyyy 和 YYYY 产生相同的数字,但它们可能不同。通常,您应该使用日历年。

于 2013-02-05T10:34:52.113 回答
0

检查此代码:-

NSString *dateStringBegin = @"7 february 2013 11:21";
    NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
    [dateFormat setDateFormat:@"dd MMMM yyyy hh:mm"];
    NSDate* date = [dateFormat dateFromString:dateStringBegin];

    NSDateFormatter *dateFormat2 = [[NSDateFormatter alloc] init];
    [dateFormat2 setDateFormat:@"yyyy-MM-dd HH:mm"];
    NSString *dateStringBegin2 =  [dateFormat2 stringFromDate:date];
    NSLog(@"Date : %@",dateStringBegin2);

希望对你有帮助。。

于 2013-02-05T10:35:48.670 回答
0

将您的日期格式更改为

[dateFormat2 setDateFormat:@"yyyy-MM-dd HH:mm"];
于 2013-02-05T10:35:53.563 回答