Как получить зону текущего времени?

в вашем маршруте:

const routes: Routes = [
  { path: '', redirectTo: 'home', pathMatch: 'full' },

    {
        "path": "home",
        "component": yourComponent (for example HomeComponent)
  },

и в вашем HTML:

[routerLink]="['/Home']">
28
задан BartoszKP 27 January 2015 в 17:28
поделиться

2 ответа

Простой posix: вызовите tzset, используйте tzname .

#include <ctime>
tzset();
time_zone_ptr zone(new posix_time_zone(tzname[localtime(0)->tm_isdst]));

Posix с glibc / bsd дополнениями:

time_zone_ptr zone(new posix_time_zone(localtime(0)->tm_zone));

Выше приведены сокращения часовых поясов Posix , определенные в терминах смещения от UTC и не стабильный во времени (есть более длинная форма, которая может включать переходы летнего времени, но не политические и исторические переходы).

ICU является переносимым и имеет логику для извлечения системного часового пояса как часового пояса Олсона (фрагмент sumwale ):

// Link with LDLIBS=`pkg-config icu-i18n --libs`
#include <unicode/timezone.h>
#include <iostream>

using namespace U_ICU_NAMESPACE;

int main() {
  TimeZone* tz = TimeZone::createDefault();
  UnicodeString us;
  std::string s;

  tz->getID(us);
  us.toUTF8String(s);
  std::cout << "Current timezone ID: " << s << '\n';
  delete tz;
}

В Linux ICU является реализован так, чтобы быть совместимым с tzset, и рассматривает TZ и /etc/localtime , которые в современных системах Linux являются символической ссылкой, содержащей идентификатор Олсона ( - вот история ). Подробнее см. В uprv_tzname.

Boost не знает, как использовать идентификатор Олсона. Вы могли бы построить posix_time_zone, используя смещения не-DST и DST, но на этом этапе лучше продолжать использовать реализацию ICU. См. этот FAQ по повышению .

10
ответ дан Community 28 November 2019 в 03:55
поделиться

Ну, может быть, вы могли бы сделать это с помощью библиотеки GeoIP. Я знаю, что это немного излишне, но, поскольку большинство компьютеров в мире подключены к Интернету, вам, вероятно, это сойдет с рук. По словам парня, для которого я разрабатываю, точность была более 99%.

Примечание: это глупая идея. Я просто стремлюсь к ответам.

1
ответ дан amphetamachine 28 November 2019 в 03:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: