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 に答える