1. ホーム
  2. ios

[解決済み] NSDateFormatter iOSを使用して日付をフォーマットする方法は?

2022-02-25 08:06:35

質問

を使おうとしたのですが NSDateFormatter から選択した日付をフォーマットするために UIDatepicker . しかし、フォーマットされた結果が nil .

-(NSString *)formatDateWithString:(NSString *)date{ 
    NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init];
    dateFormatter.dateFormat = @"yyyy-MMM-dd HH:mm:ss";
    NSDate *formattedDate = [dateFormatter dateFromString:date];
    return [dateFormatter stringFromDate:formattedDate];
}

日付入力は 2016-04-22 16:30:36 +0000 (UIDatePickerから選択した後)。これを修正するにはどうしたらよいですか?

解決方法は?

コメントにあるように、UIDatePicker から直接 NSDate を取得し、その日付をフォーマッタに直接渡すことができます。

NSDateFormatter * formatter =  [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MMM-dd HH:mm:ss"];
NSString *dateString = [formatter stringFromDate:datePicker.date];//pass the date you get from UIDatePicker

質問にあるような方法で変換したい場合は、次のようにするとよいでしょう。

-(NSString *)formatDateWithString:(NSString *)date{
    NSDateFormatter * formatter =  [[NSDateFormatter alloc] init];
    [formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss z"];
    NSDate * convrtedDate = [formatter dateFromString:date];
    [formatter setDateFormat:@"yyyy-MMM-dd HH:mm:ss"];
    NSString *dateString = [formatter stringFromDate:convrtedDate];
    return dateString;
}