在iOS中将date转换为时间戳

你如何将任何给定的date转换为毫秒? 例如,2014-01-23到时间戳转换。

NSDate *date = [dateFormatter dateFromString:@"2014-01-23"]; NSLog(@"date=%@",date); NSTimeInterval interval = [date timeIntervalSince1970]; NSLog(@"interval=%f",interval); NSDate *methodStart = [NSDate dateWithTimeIntervalSince1970:interval]; [dateFormatter setDateFormat:@"yyyy/mm/dd "]; NSLog(@"result: %@", [dateFormatter stringFromDate:methodStart]); 

产出成果:1970/30/01

尝试一下。 “mm”代表分钟,“MM”代表月份。

 NSDateFormatter * dateFormatter = [[NSDateFormatter alloc] init] ; [dateFormatter setDateFormat:@"yyyy-MM-dd"] ; NSDate *date = [dateFormatter dateFromString:@"2014-01-23"] ; NSLog(@"date=%@",date) ; NSTimeInterval interval = [date timeIntervalSince1970] ; NSLog(@"interval=%f",interval) ; NSDate *methodStart = [NSDate dateWithTimeIntervalSince1970:interval] ; [dateFormatter setDateFormat:@"yyyy/MM/dd "] ; NSLog(@"result: %@", [dateFormatter stringFromDate:methodStart]) ; 

迅速

将当前date/时间转换为时间戳:

 // current date and time let someDate = Date() // time interval since 1970 let myTimeStamp = someDate.timeIntervalSince1970 

也可以看看

  • 在Swift中将date转换为整型
  • 在Swift中创build一个date和时间
  • 如何获取当前时间作为date时间

NSTimeinterval实际上是一个双重的,从特定的date(在你的情况下,1970年开始)

注意:UNIX时间戳格式包含13个数字,所以我们需要一个1000乘法的结果。 时间戳必须是UTC ZONE而不是我们的本地时区。

 - (void)GetCurrentTimeStamp { NSDateFormatter *objDateformat = [[NSDateFormatter alloc] init]; [objDateformat setDateFormat:@"yyyy-MM-dd"]; NSString *strUTCTime = [self GetUTCDateTimeFromLocalTime:@"2014-01-23"]; NSDate *objUTCDate = [objDateformat dateFromString:strUTCTime]; long long milliseconds = (long long)([objUTCDate timeIntervalSince1970] * 1000.0); NSLog(@"Local Time = %@---- UTC = %@ ----- TimeSatmp = %ld ---- TimeStamp = %lld",strTime,strUTCTime,unixTime,milliseconds); } - (NSString *) GetUTCDateTimeFromLocalTime:(NSString *)IN_strLocalTime { NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateFormat:@"yyyy-MM-dd"]; NSDate *objDate = [dateFormatter dateFromString:IN_strLocalTime]; [dateFormatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"UTC"]]; NSString *strDateTime = [dateFormatter stringFromDate:objDate]; return strDateTime; } 

[date1 timeIntervalSinceDate:date2]将从两个NSDate对象返回秒。

 double seconds = [date1 timeIntervalSinceDate:date2]; double milliSecondsPartOfCurrentSecond = seconds - [seconds intValue]; 

milliSecondsPartOfCurrentSecond