我是一名 Objective-C 初学者,我被指派为我们的客户创建一个 iPhone 应用程序。我有一些 Java 背景,但在这个 objective-c 方面几乎没有经验,这是我第一次开发一个完整的应用程序......
无论如何,我目前正在处理几个问题。其中一个问题是我需要从我的 iOS 应用程序为 PHP 的 date
函数发送一个整数值。我一直在四处寻找解决方案,但他们都在处理相反的方式(int to NSDate
),而不是 NSDate
to integer value。
我尝试了类似回答 here 的解决方案
但很明显它返回 double ,而不是整数...
或者 this
但这无法获取系统时间
。
我知道我可以通过以下方式获取当前系统的 NSDate:
NSDate *theDay = [NSDate dateWithTimeIntervalSinceNow:[[NSTimeZone systemTimeZone] secondsFromGMT]];
但我不知道如何将其转换为整数(或长整数)值。
我只需要获得与我们在 Java
中使用 System.currentTimeMillis()
可以获得的值相同的值。
此外,这是我第一次在 stackoverflow 中提问。因此,在此处发布问题等时,如果有什么我应该做/不应该做的,请告诉我。
谢谢。
最佳答案
要获取当前日期,您应该使用这个:
NSDate *theDate = [NSDate date];
要获取自 1970 年 1 月 1 日以来的秒数,作为 double 值,您可以使用:
NSTimeInterval seconds = [[NSDate date] timeIntervalSince1970];
要以毫秒为单位获取它,只需将先前的值乘以 1000,然后让编译器将其转换为整数,而无需任何额外代码:
long long milliseconds = [[NSDate date] timeIntervalSince1970] * 1000;
正如@HotLicks 指出的那样,当 System.currentTimeMillis()
处于 GMT 时,如果您需要本地时间,您可以使用:
long long milliseconds = ([[NSDate date] timeIntervalSince1970]
+ [[NSTimeZone defaultTimeZone] secondsFromGMT]) * 1000;
(我认为大多数网络服务都需要 GMT。)
关于java - 如何将 NSDate 转换为整数以将 PHP date() 作为 unix 时间戳传递?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13328134/