7

我是一名 Objective-c 初学者,我被分配为我们的客户创建一个 iPhone 应用程序。我有一些Java背景,但在这个objective-c方面几乎没有经验,这是我第一次开发一个完整的应用程序......

无论如何,我目前正面临几个问题。其中一个问题是我需要date从我的 iOS 应用程序中为 PHP 的函数发送一个整数值。我一直在寻找解决方案,但他们都在处理相反的方式(int to NSDate),而不是NSDate整数值。

我尝试了像在这里回答的解决方案, 但很明显它返回双精度,而不是整数......
或者这个 ,但这无法得到System time.

我知道我可以通过以下方式获得当前系统的 NSDate:

NSDate *theDay = [NSDate dateWithTimeIntervalSinceNow:[[NSTimeZone systemTimeZone] secondsFromGMT]];  

但我不知道如何将其转换为整数(或长整数)值。

我只需要获得与我们可以使用的相同的JavaSystem.currentTimeMillis()

另外,这是我第一次在 stackoverflow 中提问。因此,请让我知道在此处发布问题等时我应该做什么/不做什么。

谢谢你。

4

1 回答 1

7

要获取当前日期,您应该使用以下命令:

NSDate *theDate = [NSDate date];

要在 1970 年 1 月 1 日以来的几秒钟内得到它,作为双精度数,你可以使用:

NSTimeInterval seconds = [[NSDate date] timeIntervalSince1970];

要以毫秒为单位,只需将前一个值乘以 1000,然后让编译器将其转换为整数,而无需任何额外代码:

long long milliseconds = [[NSDate date] timeIntervalSince1970] * 1000;

正如@HotLicks 指出的那样,System.currentTimeMillis()在格林威治标准时间时,如果您需要当地时间,您可以使用:

long long milliseconds = ([[NSDate date] timeIntervalSince1970] 
                        + [[NSTimeZone defaultTimeZone] secondsFromGMT]) * 1000; 

(我认为大多数网络服务都需要 GMT。)

于 2012-11-11T02:48:46.677 回答