我在此格式中有字符串日期“星期二,2012年10月23日01:05:00 +0000”。现在我想将日期格式转换为“ TUE OCT 23 2012 1:05 AM ”。这样做的最佳方式是什么?
答案 0 :(得分:12)
使用此方法。将你的字符串传递给它&根据需要设置日期格式。您将获得所需的日期作为回报。
- (NSDate *) getDateFromString:(NSString *) inputDate
{
NSDateFormatter *dateForm = [[NSDateFormatter alloc] init];
[dateForm setDateFormat:@"yyyy-MM-dd"];
NSDate *dateSelected = [dateForm dateFromString:inputDate];
[dateForm release];
return dateSelected;
}
希望它适合你。
=============================================== ================
日期格式选项如下:
现在您需要可以与NSDateFormatter一起使用的所有字符串格式。这是
a:上午/下午
A:0~86399999(毫秒)
c / cc:1~7(星期几)
ccc:周一/周一/周二/周三/周四/周五/周六
cccc:周日/周一/周二/周三/周四/周五/周六
d:1~31(每月填0天)
D:1~366(每年0天填充)
e:1~7(0周填充日)
F:1~5(每月0个月,周的第一天=周一)
g:Julian Day Number(自公元前4713年1月1日以来的天数)
G~GGG:BC / AD(时代指示符缩写)
GGGG:在Christ / Anno Domini之前h:1~12(0小时(12小时))
H:0~23(0填充小时(24小时))
k:1~24(0填充小时(24小时)
K:0~11(0填充小时(12小时))
L / LL:1~12(0个月填充)
LLL:Jan / Feb / Mar / Apr / May / Jun / Jul / Aug / Sep / Oct / Nov / Dec
LLLL:1月/ 2月/ 3月/ 4月/ 5月/ 6月/ 7月/ 8月/ 9月/ 10月/ 11月/ 12月
m:0~59(0填充分钟)
M / MM:1~12(0个月填充)
q / qq:1~4(0填充季度)
qqq:Q1 / Q2 / Q3 / Q4
qqqq:第一季度/第二季度/第三季度/第四季度 Q / QQ:1~4(0填充季度) QQQ:Q1 / Q2 / Q3 / Q4 QQQQ:第一季度/第二季度/第三季度/第四季度s:0~59(0填充秒)
S :(舍入次秒)
u :( 0填充年份)
v~vvv :( GMT时区缩写)
vvvv :(通用GMT时区名称)
w:1~53(0周填充周,第1天=周日,NB:从去年最后一个星期日开始的第1周)
W:1~5(每月0个月,周的第一天=周日)
是/ yyyy :(全年)YY / YYY :( 2位数年份,从一年的第一周的星期日开始)
z~zz :(特定GMT时区缩写)
zzzz :(特定GMT时区名称)
Z:+0000(RFC 822时区)
==========================================
根据需要设置格式..
答案 1 :(得分:3)
NSString *dateStr = @"Tue, 25 May 2010 12:53:58 +0000";
// Convert string to date object
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"EE, d LLLL yyyy HH:mm:ss Z"];
NSDate *date = [dateFormat dateFromString:dateStr];
但首先
NSDateFormatter
以将日期字符串转换为NSDate
对象。NSDateFormatter
(或更改。的格式字符串
首先)将NSDate
转换回字符串。这会有点帮助???
修改强>
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"UTC"]];
[dateFormatter setDateFormat:@"yyyy-MM-ddHH:mm:ss"];
NSDate *date = [dateFormatter dateFromString:@"2011-04-0600:28:27"];
答案 2 :(得分:2)
使用此波纹管方法传递日期...
-(NSString *)StringFromDate:(NSString *)DateLocal{
DateLocal = [self trimString:DateLocal];
NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
[dateFormatter setDateFormat:@"EEE, dd LLL yyyy hh:mm:ss Z"];
NSDate *date = [dateFormatter dateFromString: DateLocal];
NSString *tt = [dateFormatter stringFromDate:date];
NSDate *dateReturn = [dateFormatter dateFromString:tt];
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"EEE LLL dd yyyy hh:mm a"];
NSString *dateString = [dateFormat stringFromDate:dateReturn];
NSLog(@"Date is HERE =====>> %@",dateString);
[dateFormat release];
return dateString;
}