如何将任何人类可读日期转换为unix时间戳

时间:2013-04-30 12:37:52

标签: iphone ios objective-c nsdateformatter unix-timestamp

我有一个类似于2013年1月20日的日期,并尝试获取此日期的unix时间戳。我搜索了很多,发现如何将当前日期转换为unix时间戳,但没有找到我的解决方案。

这是我的代码,我在做什么。

NSDate *date = mydate;     //myDate is the date like 01/20/2013

NSDateFormatter *formatter = [[ NSDateFormatter alloc]init];

[formatter setDateFormat:@"mm/dd/yyyy"];

NSString *timestamp = [formatter stringFromDate:date];

NSLog(@"%@",timestamp);

我的控制台中的时间戳值为null。

2 个答案:

答案 0 :(得分:2)

iOS为NSDate对象提供-(NSTimeInterval)timeIntervalSince1970,返回自1970年1月1日格林威治标准时间00:00:00起的秒数.NSTimeInterval是双浮点类型,因此您可以获得秒和分数。< / p>

time_t unixTime = (time_t) [your_date timeIntervalSince1970];

这里time_t通常是带符号的32位整数类型(long或int)。

答案 1 :(得分:1)

你可以用

获得它
- (NSTimeInterval)timeIntervalSince1970

<强>更新

例如int ...

int unixtimestamp = [mydate timeIntervalSince1970];

NSTimeInterval

中的其他示例
NSTimeInterval ti = [mydate timeIntervalSince1970];