java - 如何将 NSDate 转换为整数以将 PHP date() 作为 unix 时间戳传递?

标签 java objective-c integer nsdate

我是一名 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/

相关文章:

java - 在 Mac 上确定 Java SDK 的版本

JavaScript 性能开关(整数)与开关(字符串)

java - UML 类图 - 多重关联

java - IntelliJ IDEA 方法名缩进

objective-c - Objective-C : class init with block ?

ios - 如何更改 Objective-C 中的 CBAdvertisementDataLocalNameKey 值?

Objective-C 图表框架

performance - 查找数字的最快方法是什么?

java - 是什么导致我的代码中出现 StackoverFlowError?

java - 无法运行 eclipse,不断出现错误?