我正在尝试在 OSx 上创建具有本地时区的 struct tm。
#import <time.h>
#import <xlocale.h>//This is here because I was trying strptime_l
int main(int argc, const char * argv[])
{
struct tm start;
memset(&start, 0, sizeof(struct tm));
const char *formatString = "%m/%d/%Y %R";
(void) strptime("7/15/2013 16:00", formatString, &start);//Mon Jul 15 @ 4pm EST
printf("%s\n", start.tm_zone); //prints null
if (!start.tm_zone) {
time_t now;
time(&now);
printf("%s\n", localtime(&now)->tm_zone);//But I have the right timezone here.
}
return 0;
}
根据OSx 文档:
虽然 strptime() 函数使用当前语言环境,但 strptime_l() 函数可以直接传递一个语言环境。有关详细信息,请参阅 xlocale(3)。
我的最终目标是能够创建一个 NSDate 对象,这样我最终就可以在 iPhone 上创建一个日历事件。