c ++ Как узнать время в другой стране с учетом летнего времени?

Скажем, если сейчас 13:00 в Новой Зеландии Йорк (EST), тогда в Новой Зеландии 06:00 (NZST). Если в Новой Зеландии переходит на летнее время, то когда в Нью-Йорке 13:00 (все еще EST), это будет 07: 00 в Новой Зеландии (теперь NZDT).

Я читал библиотеку ускоренного времени, но мне кажется, что нужно самому определять правила перехода на летнее время, чтобы узнать время в другой стране с точки зрения «местного времени» ..

например

 nyc_string = "EST-05:00:00EDT+01:00:00,M4.1.0/02:00:00,M10.5.0/02:00:00";
 // above basically defines the daylight saving rule
 time_zone_ptr nyc_2(new posix_time_zone(nyc_string));

 std::cout << "The second zone is in daylight savings from:\n " 
  << nyc_2->dst_local_start_time(2004) << " through "
  << nyc_2->dst_local_end_time(2004) << std::endl;

источник: http://www.boost.org/doc/libs/1_39_0/doc/html/date_time/examples.html

Может быть, я что-то еще не знаю? Использует ли boost какую-либо базу данных, которая отслеживает правила перехода на летнее время? Интересно, есть ли хороший способ настроить местное время на другое время? e в C ++ с учетом правил перехода на летнее время .. Если бы у меня был пример, это было бы так здорово!

10
задан user945216 29 November 2011 в 21:56
поделиться