我从UIDatePicker获取输入,我的输出采用这种格式
3:24:00 AM
但是当我尝试将其转换回NSDate时,从那里返回一个空值。
我的代码:
NSDate* sourceDate = self.timePicker.date;
NSString *dateString = [NSDateFormatter localizedStringFromDate:sourceDate
dateStyle:NSDateFormatterNoneStyle
timeStyle:NSDateFormatterMediumStyle];
NSLog(@"%@",dateString); //3:25:00 AM string value
将dateString转换为NSDate
NSDate *dateVal=(NSDate *)dateString;
NSLog(@"%@", dateVal); // printing null in console
将dateVal转换为long
long val=[d timeIntervalSince1970]*1000;
NSLog(@"%ld",val); // printing 0
我该如何解决这个问题?请帮帮我
我希望NSDate的时间部分有很长的值
答案 0 :(得分:0)
//将字符串转换为日期对象
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"yyyyMMdd"];
NSDate *date = [dateFormat dateFromString:dateStr];
这将帮助您将dateString转换为NSDate
答案 1 :(得分:0)
您需要以下内容:
NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setLocale:[[NSLocale alloc] initWithLocaleIdentifier:NSLocaleIdentifier]];
[df setDateFormat:@"h:m:s a"];
NSDate *myDate = [df dateFromString:dateString];
您需要将字符串转换为NSDate对象。一种简单的方法是使用NSDateFormatter对象。它提供了dateFromString方法,该方法将字符串转换为NSDate对象。但是,您需要告诉NSDateFormatter日期的格式。
日期格式化程序参考:
a AM/PM
A millisecond of day
c day of week (c,cc,ccc,cccc)
d day of month
e day of week (e,EEE,EEEE)
F week of month
g julian day (since 1/1/4713 BC)
G era designator (G=GGG,GGGG)
h hour (1-12, zero padded)
H hour (0-23, zero padded)
L month of year (L,LL,LLL,LLLL)
m minute of hour (0-59, zero padded)
M month of year (M,MM,MMM,MMMM)
Q quarter of year (Q,QQ,QQQ,QQQQ)
s seconds of minute (0-59, zero padded)
S fraction of second
u zero padded year
v general timezone (v=vvv,vvvv)
w week of year (0-53, zero padded)
y year (y,yy,yyyy)
z specific timezone (z=zzz,zzzz)
Z timezone offset +0000
sql y-M-d H:m:s
rss [E, ]d MMM y[y] H:m:s Z|z[zzz]