我发现了很多时间戳转换,它们都可以工作,但事实是,当我将代码放入日期的文本形式时,我总是提前4个月问世。
这将拉动当前的星期几,日期和时间。我将其设置为这种方式,因为我使用DateTime Picker选择了一天。这只是我的viewDidLoad拉今天的日期。
NSDate *myDate = [[NSDate alloc] init];
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"cccc, MMMM dd, YYYY, hh:mm aa"];
NSString *prettyVersion = [dateFormat stringFromDate:myDate];
date.text = prettyVersion;
现在进行时间戳转换,将prettyVersion转换为timeIntervalSince1970
NSDate *startdates = [dateFormat dateFromString:prettyVersion];
NSLog(@"Timestamp %0.0f",[startdates timeIntervalSince1970]);
NSLog输出“时间戳1356317580”,转换后为2012年12月24日星期一,格林尼治标准时间
现在我可以做
NSLog(@"Timestamp2 %0.0f",[myDate timeIntervalSince1970]);
并获得正确的时间戳。
所以我在哪里弄糟。
这里已经回答了这个问题:NSDateFormatter dateFromString提供了错误的日期
但是要点在于您的日期dateFormat中,您应该使用“ yyyy”而不是“ YYYY”。
从苹果文档:
一个常见的错误是使用YYYY。yyyy指定日历年,而YYYY指定在ISO年周日历中使用的年份(“年中的一周”)。在大多数情况下,yyyy和YYYY产生相同的数字,但是它们可能不同。通常,您应该使用日历年。
[dateFormat setDateFormat:@"cccc, MMMM dd, yyyy, hh:mm aa"];
然后,对我来说,它的格式为“ 2013年9月15日,星期日,下午7:24”,这是我运行此代码进行测试时使用的格式。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句