【问题标题】:dateFromString returns nil. Unable to convert the date to the desired formatdateFromString 返回零。无法将日期转换为所需格式
【发布时间】:2018-01-30 12:12:22
【问题描述】:

这是我输入的 nsstring 30/01/18 3:25 PM

我想要这种格式的日期:30/Jan/18 3:25 PM。

这是我尝试过的:

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter setDateFormat:@"dd/MM/yy HH:mm "];
NSDate *date = [[NSDate alloc] init];
date = [dateFormatter dateFromString:releaseDate];
[dateFormatter setDateFormat:@"dd/MMM/yy HH:mm "];
NSString *finalDate = [dateFormatter stringFromDate:date];

我也试过这个:

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"dd/MM/yy HH:mm z"];
    NSDate *date = [[NSDate alloc] init];
    date = [dateFormatter dateFromString:releaseDate];
    [dateFormatter setDateFormat:@"dd/MMM/yy HH:mm z"];
    NSString *finalDate = [dateFormatter stringFromDate:date];

我的约会总是为零!我做错了什么?

另外:时间有 12 小时制和 24 小时制两种。我如何同时处理两者?

【问题讨论】:

  • 日期格式不匹配:上午/下午的 12 小时格式为 hha 缺失。 z 代表时区,但没有。请阅读Unicode.org - Date format patterns
  • 一个人给出了正确的答案并将其删除。我不理解堆栈溢出中的这种行为。

标签: ios objective-c nsdate nsdateformatter


【解决方案1】:

你检查它下面的功能,它工作正常:-

-(void)DateChange
 {
    NSString *Input_Date =@"31/01/18 04:25 AM";

    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"dd/mm/yy hh:mm a"];

    NSDate * Format_date = [dateFormatter dateFromString:Input_Date];
    [dateFormatter setDateFormat:@"dd/MMM/yy hh:mm a"];
    NSString *Change_date = [dateFormatter stringFromDate:Format_date];
    NSLog(@"Final Change Date :-  %@",Change_date);
}



My Output is :- 
Final Change Date :- 31/Jan/18 04:25 AM

【讨论】:

    【解决方案2】:

    使用这个用 Swift 编写的函数来改变日期格式。它的工作不

     func dateFormatterfromString(_ date: String!) -> String{
        let dateFormatter = DateFormatter()
        dateFormatter.dateFormat = "dd-MMM-yyyy"
        let date = dateFormatter.date(from:date)!
        dateFormatter.dateFormat = "yyyy-MM-dd"
        let dateString = dateFormatter.string(from:date)
        return dateString
    }
    

    【讨论】:

    • 在 swift 上完美地为我工作。
    • 它不能与输入字符串30/01/18 3:25 PM一起工作,它永远不会输出格式30/Jan/18 3:25 PM
    猜你喜欢
    • 1970-01-01
    • 2020-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-21
    • 2020-03-14
    • 1970-01-01
    相关资源
    最近更新 更多