Projektowanie stref czasowych

Obiekt Strefa czasowa służy do definiowania wszystkich stref czasowych, w których mogą rezydować klienci organizacji. W każdej strefie czasowej konieczne jest zdefiniowanie nazwy strefy czasowej. Stanowi ona odwołanie do zewnętrznego źródła definiującego strefy czasowe, ich powiązanie z czasem uniwersalnym (GMT), oraz informację, czy w danej strefie czasowej stosowana jest letnia/zimowa zmiana czasu (czas letni), oraz kiedy ta zmiana występuje.

W poniższych sekcjach opisano pojęcia i tematy konfiguracji związane z zarządzaniem strefami czasowymi.

Uwaga: Klienci korzystający z aplikacji Oracle Utilities Customer Care and Billing - Interval Billing powinni zapoznać się z tematem Zagadnienia dotyczące czasu, gdzie zamieszczono szczegółowe informacje związane z funkcją fakturowania interwałowego w tym produkcie (należy w tym celu wyszukać w indeksie pomocy hasło "zagadnienia dotyczące czasu").

Podstawowa strefa czasowa

Pierwszym etapem definiowania własnych stref czasowych powinno być ustalenie podstawowej strefy czasowej. Można wybrać strefę czasową, w której znajduje się główne biuro firmy. Teraz można połączyć kod strefy czasowej z opcją instalacji, wskazując tę strefę jako podstawową. Więcej informacji można znaleźć w sekcji Opcje instalacji - główne.

Uwaga: W pliku właściwości systemowych można skonfigurować atrybut wskazujący, czy strefa czasowa sesji bazy danych ma być synchronizowana z wartością zdefiniowaną w opcjach instalacji. Więcej informacji zawiera publikacja Server Administration Guide.

Jeśli firma prowadzi działalność poza strefą czasową głównego biura, można zdefiniować inne strefy czasowe, gdzie mogą rezydować klienci bądź inne systemy, z którymi organizacja wymienia dane. Na tym etapie w konkretnym produkcie można uwzględnić tabele konfiguracyjne, które umożliwią pobieranie domyślnych stref czasowych, na przykład w oparciu o kod pocztowy lub lokalizację geograficzną.

Czas standardowy a czas oficjalny

Termin Czas oficjalny odnosi się do rzeczywistego czasu zegarowego, na który może mieć również wpływ czas letni (inaczej "czas lokalny"). W tej linii czasu uwzględniona jest godzinna luka w momencie przejścia na czas letni i powielona godzina przy wyjściu z tego okresu.

Termin Czas standardowy odnosi się do linii czasu, w której nie są stosowane zmiany związane z przejściem na czas letni. Ta wirtualna linia czasu nie uwzględnia godzinnej luki w momencie przejścia na czas letni ani powielonej godziny przy wyjściu z tego okresu, tzn. jest ona ciągła i jednoznaczna. W ramach ogólnej reguły zaleca się, aby wszystkie dane zależne od informacji o czasie były zapisywane według czasu standardowego podstawowej strefy czasowej zdefiniowanej w opcjach instalacji. Zapobiegnie to niejednoznacznościom podczas analizowania danych i wyeliminuje konieczność wykonywania przez algorytmy zmian danych związanych ze strefą czasową lub przejściem na czas letni w przypadku danych przechowywanych w różnych strefach czasowych.

W zależności od konkretnego produktu informacje o dacie/godzinie dotyczące poszczególnych obiektów mogą być przechowywane w jednej z następujących opcji:
  • Czas standardowy podstawowej strefy czasowej (zwany również "czasem fizycznym").

  • Czas standardowy innej strefy czasowej związanej z położeniem geograficznym obiektu (zwany również "czasem logicznym").

  • Czas oficjalny podstawowej strefy czasowej.

Definicja metadanych tabeli określa, czy tabela zawiera pola daty/godziny, które są przechowywane w czasie standardowym. Zwykle wszystkie pola daty/godziny w tabeli obsługującej czas standardowy są przechowywane w ten sam sposób, ale system umożliwia również określenie własnych opcji w poszczególnych polach. W takim przypadku definicja metadanych pola określa, czy jest to czas standardowy podstawowej strefy czasowej (Fizyczny czas standardowy), czas standardowy innej strefy czasowej powiązanej z obiektem (Oficjalny czas standardowy), czy też dane są przechowywane w czasie oficjalnym podstawowej strefy czasowej (Odwołanie do strefy czasowej).

Przechowywanie a wyświetlanie danych

Niezależnie od opcji strefy czasowej używanej do przechowywania danych w czasie standardowym wszystkie informacje o dacie/godzinie są wprowadzane i wyświetlane w interfejsie użytkownika w czasie oficjalnym odpowiedniej strefy czasowej. Interfejs użytkownika jest zaprojektowany w taki sposób, że w przypadku gdy zdefiniowano przechowywanie pola w czasie standardowym podstawowej bądź innej strefy czasowej, możliwe jest zaakceptowanie danych zapisanych w czasie oficjalnym odpowiedniej strefy czasowej i przeniesienie ich do czasu standardowego tej samej strefy czasowej, zanim zostaną one zapisane. Przed wyświetleniem danych użytkownikowi są one z powrotem przenoszone z czasu standardowego do czasu oficjalnego.

Należy pamiętać, że konwersje czasu związane ze strefami czasowymi i czasem letnim na czas standardowy i odwrotnie są wykonywane w tle w ramach warstwy interfejsu użytkownika. Gdy dane znajdą się na serwerze, wówczas należą do opcji czasu przechowywania obowiązującej na serwerze. Konwersje czasu powinny pozostać niezauważalne dla użytkownika.

Zmiana czasu standardowego na czas oficjalny nie odbywa się automatycznie. W sposobie wprowadzania i wyświetlania danych w polach, które są przechowywane w czasie standardowym, należy wyraźnie uwzględnić cechy zmiany czasu w konfiguracji interfejsu użytkownika i strefy tych pól.

Elementy schematu daty/godziny

Podczas definiowania pól daty/godziny w schemacie obiektu biznesowego można zastosować atrybuty schematu, aby zdefiniować, czy dane będą przechowywane w czasie standardowym podstawowej strefy czasowej czy w czasie standardowym innej strefy czasowej (związanej z danymi).

Domyślnie dane przechowywane w czasie standardowym są wyświetlane w czasie oficjalnym odpowiedniej strefy czasowej. Można zastosować dodatkowe atrybuty schematu, aby wskazać, czy konieczna jest zmiana wyświetlania czasu na czas oficjalny innej strefy czasowej. Na przykład, jeśli dane są przechowywane w podstawowej strefie czasowej, ale odnoszą się do innej strefy czasowej, będą pokazywane w strefie czasowej odpowiedniej dla danych (z uwzględnieniem odpowiedniej korekty sezonowej). Więcej informacji można znaleźć w sekcji Węzły schematu i atrybuty - kwestie dotyczące czasu standardowego.

Wymiana informacji dotyczących daty/godziny z systemami zewnętrznymi

Wymiana informacji dotyczących daty/godziny między systemami powinna odbywać się przy użyciu standardowego formatu XSD, ponieważ zawiera on odwołanie do strefy czasowej podanego czasu, które jest wyrażone jako przesunięcie względem uniwersalnego czasu koordynowanego (UTC). System automatycznie konwertuje elementy daty/godziny w komunikacie przychodzącym z formatu XSD na format wewnętrzny oraz wykonuje odwrotną konwersję w komunikacie wychodzącym. Ten ostatni proces jest kontrolowany przez wyraźne ustawienie formatu daty/godziny danego typu wiadomości wychodzącej w rekordzie systemu zewnętrznego.

Przesunięcie jest określane w sposób opisany poniżej. Oparte jest na strefie czasowej powiązanej z elementem, w sposób wyraźnie określony w odpowiednim schemacie przychodzącym lub wychodzącym:
  • W elementach przechowywanych w czasie standardowym podstawowej bądź innej strefy czasowej obowiązuje takie samo przesunięcie przez cały rok, ponieważ ta linia czasu nigdy nie podlega zmianom związanym z przejściem na czas letni. Przesunięcie oznacza w tym przypadku standardowe przesunięcie tej strefy czasowej względem czasu UTC, tj. nie w okresie czasu letniego.

  • W elementach przechowywanych w czasie oficjalnym podstawowej strefy czasowej obowiązuje standardowe przesunięcie podstawowej strefy czasowej, gdy wartość daty/godziny jest poza okresem czasu letniego, oraz zmienione przesunięcie, gdy wartość przypada w tym okresie.

Strefa czasowa użytkownika

Jeśli firma użytkownika prowadzi działalność w wielu strefach czasowych, rekordy poszczególnych użytkowników mogą odnosić się do strefy czasowej ich lokalizacji. Zawiera ona dodatkowe informacje o lokalizacji użytkownika, dlatego może być używana w konkretnych regułach biznesowych obejmujących ustawienia strefy czasowej.
Uwaga: Strefa czasowa zdefiniowana w rekordzie użytkownika nie jest używana do automatycznego wyświetlania informacji dotyczących daty/godziny w strefie czasowej użytkownika. Domyślnie system wyświetla pola daty/godziny, które są przechowywane w czasie standardowym, w czasie oficjalnym odpowiedniej dla nich strefy czasowej, a nie w strefie czasowej użytkownika.