我通过解析xml来获得生日。在
-(void)parser:(NSXMLParser*)parser didEndElement
方法,我将<birthday></birthday>
元素的值转换为NSDate,但它返回/ Date(934146000000 + 0300)/:
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"dd-MM-yyyy"];
NSDate *dateFromString = [[NSDate alloc] init];
dateFromString = [dateFormatter dateFromString:currentStringValue];
如何将其转换为NSDate才能转换为NSString?
答案 0 :(得分:0)
看起来你正在从长变量中检索值。
目前指的是周一,11月29日31571 00:00:00 GMT
如果从末尾删除三个0,那就有意义了......
934146000 = Sun,1999年8月8日21:00:00 GMT
您还需要修复格式。格式dd-MM-yyyy将无法理解934146000。
你可以做点像......
CGFloat dateValue = 934146000;
NSDate *theDate = [NSDate dateWithTimeIntervalSince1970:dateValue];
这应该得到正确的日期。
但就像我说的那样,你需要先梳理出你得到的价值。
答案 1 :(得分:0)
似乎你从Java或C#获得的值是以毫秒为单位的当前时间。 在Objective C中,NSDate期望时间为秒,而不是毫秒。所以你必须把它除以1000。
NSDate * dateOfBirth = [NSDate dateWithTimeIntervalSince1970:[recvDate floatValue]/1000.0];
您可以使用类似下面的内容,但仍需要修正毫秒到秒值。
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.dateFormat = @"EEE, dd MMM yyyy HH:mm:ss ZZZ";
NSDate * date = [formatter dateFromString:str];