0

我想将字符串转换为日期。它在以下情况下不起作用。我正在使用设置应用程序来设置区域。在设置中,转到一般,转到国际,转到区域格式,转到西班牙语,然后设置阿根廷。设置这些参数后,我尝试将字符串转换为日期。它没有将字符串转换为日期。请帮忙。

编辑:这是我的代码。

NSDateFormatter *formatter = [[NSDateFormatter alloc] init] ; 
[formatter setDateFormat:@"MM/dd/yyyy h:mma"];
 NSDate *_date = [formatter dateFromString:strDate];
4

2 回答 2

0

当您将字符串转换为日期时,字符串必须采用西班牙语(阿根廷)格式,以便 NSDateFormatter 能够理解。

在您的示例中,您通过的日期是“ 05/29/2012 6:15PM

但是,在西班牙语(阿根廷)中,日期字符串应为“ 05/29/2012 6:15p.m.

如果您动态获取此日期,最好删除日期中的 AM/PM 组件并尝试获取 24 小时格式的日期字符串

于 2013-05-08T10:37:59.690 回答
0

本文档解释了您遇到的情况

简而言之,使用美国语言环境格式化您的日期,如果您希望向用户显示日期,请将日期转换为字符串。

例如:

NSString *strDate  = @"05/29/2012 6:15PM";
NSDateFormatter *formatter = [[NSDateFormatter alloc] init] ;
[formatter setDateFormat:@"MM/dd/yyyy h:mma"];
[formatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"]];

NSDate *_date = [formatter dateFromString:strDate];

并向用户显示日期:

NSDateFormatter *formatter2 = [[NSDateFormatter alloc] init];
[formatter setDateStyle:NSDateFormatterShortStyle];
[formatter setTimeStyle:NSDateFormatterShortStyle];
NSString *newDate = [formatter2 stringFromDate:_date];

进入应用程序的日期字符串通常应转换为标准格式,如果您想向用户显示日期,则需要将日期格式化回字符串 - 将它们视为单独的步骤:

  1. 将字符串转换为合理的日期格式
  2. 使用所需格式获取用户区域设置的日期
于 2013-05-08T14:06:38.463 回答