我如何获得ISO 8601格式的当前时间?它应该看起来像2011-11-16T22:06Z
答案 0 :(得分:4)
纯C解决方案,仅使用标准C功能:
#include <stdio.h>
#include <time.h>
int main(void) {
time_t now = time(NULL);
struct tm *now_tm = gmtime(&now);
char iso_8601[] = "YYYY-MM-DDTHH:MMZ";
/* init just to get the right length */
strftime(iso_8601, sizeof iso_8601, "%FT%RZ", now_tm);
puts(iso_8601);
return 0;
}
答案 1 :(得分:4)
使用一个简单的NSDateFormatter调用 - “yyyy-MM-dd'T'HH:mmZ”或其他一些。 (不要忘记设置Locale以避免AM / PM混乱。)
答案 2 :(得分:3)
我在looking at this potentially duplicate question找到了答案,其中一个答案是使用名为Peter Hosey的ISO8601DateFormatter的开源解决方案。
你可以download from here。奖金,它仅在几天前(2011年11月5日至2011年)更新。
然后,获取当前日期&amp;时间......你会这样做:
ISO8601DateFormatter *formatter = [[ISO8601DateFormatter alloc] init];
NSString *dateString = [formatter stringFromDate:[NSDate date]];
[formatter release];
formatter = nil;