我正在尝试将NSDate纳入格式: 20/05/2014 22:30
这是我目前的代码。
[dateFormat setDateFormat:@"YYYY-MM-dd\'T\'HH:mm:ssZZZZZ"];
这有效,但格式不像 20/05/2014 22:30 它显示日期格式如:12-03-2013 12:00:00 +00:00
然后当我使用时:
[dateFormat setDateFormat:@"MM/dd/yyyy"];
我返回的是null
值,而不是格式化的日期。
// timestamp conversion
NSString *str = [timeStamp objectAtIndex:indexPath.row];
// convert to date
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
// [dateFormat setDateFormat:@"YYYY-MM-dd\'T\'HH:mm:ssZZZZZ"];
[dateFormat setDateFormat:@"MM/dd/yyyy"];
NSDate *dte = [dateFormat dateFromString:str];
cell.timeStampLabel.text = [NSString stringWithFormat:@"%@",dte ];
格式化前的str原始字符串输出为str 2013-08-23T15:21:19+02:00
感谢您的帮助
答案 0 :(得分:37)
你必须这样做,但请先检查你的str的日期格式
NSString *str = [timeStamp objectAtIndex:indexPath.row];
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"YYYY-MM-dd\'T\'HH:mm:ssZZZZZ"];
NSDate *dte = [dateFormat dateFromString:str];
[dateFormat setDateFormat:@"dd/MM/yyyy HH:mm"];
cell.timeStampLabel.text = [NSString stringWithFormat:@"%@",[dateFormat stringFromDate:dte]];
第一次设置日期格式与str。相同。
答案 1 :(得分:3)
首先将NSDateFormatter
设置为您要接收数据的格式,以将其保留到NSDate对象中,然后再次使用所需的格式将其更改为您想要的格式并显示它。有关更多内容,您可以看到 Pratik 回答。
希望这有帮助。
答案 2 :(得分:3)
以[日期格式设置日期格式:@“dd / MM / yyyy HH:mm”]设置日期格式;所以你的代码写的方式
// timestamp conversion
NSString *str = [timeStamp objectAtIndex:indexPath.row];
// convert to date
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
// [dateFormat setDateFormat:@"YYYY-MM-dd\'T\'HH:mm:ssZZZZZ"];
[dateFormat setDateFormat:@"dd/MM/yyyy HH:mm"];
NSDate *dte = [dateFormat dateFromString:str];
cell.timeStampLabel.text = [NSString stringWithFormat:@"%@",dte ];
我希望它有所帮助。
答案 3 :(得分:2)
我认为以编程方式强制执行locale`及其外观是一个坏主意,除非它被指定为一个要求。
另一种方法是使用setDateStyle
上的NSDateFormatter
,使用System Preferences -> Language & Text -> Region -> Dates
下指定的格式之一。
时间和日期都有短,中,长格式可供选择。
可用的样式列在NSDateFormatterStyle
现在回答你的问题: 如果您将短时格式附加到中期日期格式,那么您将获得所需的结果,同时保持可本地化和可定制性。
答案 4 :(得分:2)
只需使用以下代码即可获得结果:
//时间戳转换
NSString *str = [timeStamp objectAtIndex:indexPath.row];
//转换为日期
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"yyyy-MM-dd T HH:mm:ss ZZZZ"];
NSDate *dte = [dateFormat dateFromString:str];
[dateFormat setDateFormat:@"dd/MM/yyyy HH:mm"];
cell.timeStampLabel.text = [NSString stringWithFormat:@"%@",[dateFormat stringFromDate:dte]];
答案 5 :(得分:1)
将日期格式化程序设置为
[dateFormat setDateFormat:@"dd/MM/yyyy HH:mm"];
//时间戳转换
NSString *str = [timeStamp objectAtIndex:indexPath.row];
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"dd/MM/yyyy HH:mm"];
NSDate *dte = [dateFormat dateFromString:str];
cell.timeStampLabel.text = [NSString stringWithFormat:@"%@",dte ];
答案 6 :(得分:0)
Have a look at DateFormatters to use required formats: Apple Doc
答案 7 :(得分:0)
** NSString * strNotificationTimeAndDate ="您的约会对象";
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"yyyy-MM-dd HH:mm:ss.z"];
或
[dateFormat setDateFormat:@"yyyy-MM-dd HH:mm:ss+z"];
或
[dateFormat setDateFormat:@"yyyy-MM-dd HH:mm:ssz"];
或
[dateFormat setDateFormat:@"yyyy-MM-dd HH:mm:ss z"];
NSDate *commentdate = [dateFormat
dateFromString:strNotificationTimeAndDate];**