繁体   English   中英

NSDateFormatter无法正确格式化

[英]NSDateFormatter not formatting correctly

我认为我以错误的方式使用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

变更:

[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产生相同的数字,但是它们可能不同。 通常,您应该使用日历年。

检查此代码:-

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

希望对您有帮助。

将日期格式更改为

[dateFormat2 setDateFormat:@"yyyy-MM-dd HH:mm"];

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM