将字符串转换为日期并获取日期字符串

时间:2015-03-17 06:06:10

标签: ios nsdateformatter

在我的应用中,我有一个字符串'date'=“2015-03-16”。

我需要在2015年Lunes 16 de marzo(2015年3月16日,星期一)的标签上展示它。我使用以下代码来执行此操作:

   NSString *dateStr = date;

    // Convertimos el string date a objeto de fecha
    NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
    [dateFormat setDateFormat:@"yyyy-MM-d"];
    NSDate *fecha = [dateFormat dateFromString:dateStr];
    NSLog(@"DATE CONVERTIDO A FECHA =%@", fecha);

    NSDateFormatter *df = [[NSDateFormatter alloc] init];

    [df setDateFormat:@"EEEE, dd MMM yyyy"];


    fecha = [df dateFromString: date];

    NSLog(@"date: %@", fecha);

但最后我得到(null)变量'fecha' 记录 - > date: (null)

我做错了什么?

3 个答案:

答案 0 :(得分:1)

您使用的是格式@"yyyy-MM-d",使用@"yyyy-MM-dd"

NSString *dateStr = date;

// Convertimos el string date a objeto de fecha
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"yyyy-MM-dd"];//You were using only d
dateFormat.dateStyle = NSDateFormatterFullStyle
NSDate *fecha = [dateFormat dateFromString:dateStr];

NSLog(@"DATE CONVERTIDO A FECHA =%@", fecha);

NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"EEEE, dd MMM yyyy"];
NSString *newDatestr = [df stringFromDate:fecha];
NSLog(@"date: %@", newDatestr);

答案 1 :(得分:1)

您的df格式化程序代码正在执行另一个dateFromString而且我认为您打算转向第二个格式化程序(例如先前确定的stringFromDate的{​​{1}}

答案 2 :(得分:1)

df格式化程序用以下代码替换代码之后,您正朝着相反的方向前进:

NSString *dateStr=@"2015-03-16";
// Convertimos el string date a objeto de fecha
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"yyyy-MM-dd"];
NSDate *fecha = [dateFormat dateFromString:dateStr];
NSLog(@"DATE CONVERTIDO A FECHA =%@", fecha);

NSDateFormatter *df = [[NSDateFormatter alloc] init];

[df setDateFormat:@"EEEE, dd MMM yyyy"];


NSString *newDatestr = [df stringFromDate:fecha];

NSLog(@"date: %@", newDatestr);

希望它有帮助...........:)