【问题标题】:How to get iOS date format of current date into an integer?如何将当前日期的 iO​​S 日期格式转换为整数?
【发布时间】:2014-07-18 19:13:11
【问题描述】:

我想弄清楚如何将当前日期和时间转换为最多秒的数字?

我看到了这个帖子What format string do I use for milliseconds in date strings on iPhone?,但实际上我只是想把它变成一个数字......

编辑:抱歉意味着秒

【问题讨论】:

  • 这就是 NSDate 的用途。双精度秒数。
  • 您查看过NSDate 的文档吗?有一种方法可以将日期作为数字给出。
  • @Lion789 第二次编辑答案

标签: ios objective-c nsdate


【解决方案1】:

如果您想要UTC 时间戳并且想要存储在int 中而不是在 32 位上,则无法使用 long long,它具有更大的范围并且可以用作整数

NSString *dateValue = @"2011-06-23T13:13:00.000";
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
NSString *formatString = @"yyyy-MM-dd'T'HH:mm:ss.SSS";
[formatter setDateFormat:formatString];
NSDate *date = [formatter dateFromString:dateValue];
long long dateInMillis = [date timeIntervalSince1970]*1000;  //This will give milliseconds
long dateInSeconds =  [date timeIntervalSince1970];  //This will give seconds

编辑:对于long中的当前日期值使用

//This will give seconds of current date
long dateInSeconds =  [[NSDate date] timeIntervalSince1970]; 

【讨论】:

  • 一个 long 被认为是一个整数还是如何让它成为一个整数值?
【解决方案2】:

您可以使用以下方法将NSDate 转换为double

NSTimeInterval seconds = [[NSDate date] timeIntervalSince1970];

【讨论】:

  • 这应该在几秒钟内给我,而不是毫秒,因为我实际上需要几秒钟?
  • 这会在逗号前几秒
  • 在逗号之前?你这是什么意思?
  • NSTimeInterval 是双精度,单位是秒,但小数部分是毫秒
【解决方案3】:

毫:

long long milliseconds = llround(([[NSDate date] timeIntervalSince1970] * 1000.0));

【讨论】:

  • 感谢您以毫秒为单位,但我的意思是秒
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-04-06
  • 1970-01-01
  • 1970-01-01
  • 2014-02-25
  • 2018-02-12
  • 1970-01-01
  • 2021-07-29
相关资源
最近更新 更多