1

我正在尝试在 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 上创建一个日历事件。

4

0 回答 0