Chování a formát sloupce data a času

V Microsoft Dataverse můžete určit, jak se uživatelům zobrazují hodnoty data a času a jak jsou upraveny pro časová pásma.

Kromě standardních vlastností dostupných u většiny sloupců mají sloupce data a času dvě další vlastnosti:

  • Úprava časového pásma: Určuje, zda se mají upravit hodnoty pro časová pásma.
  • Formát: Zda se má zobrazit časová část hodnoty.

Úprava časového pásma

Dataverse ukládá všechny hodnoty data a času v časovém pásmu UTC. Když vaše aplikace zobrazuje hodnoty nebo zpracovává hodnoty zadané uživateli, Dataverse a modelem řízené aplikace se mohou přizpůsobit časovému pásmu uživatele pomocí možností Chování.

  • Místní čas uživatele: upraví hodnoty dle časového pásma uživatele. Toto je výchozí chování pro formát Datum a čas. Můžete provést jednu změnu na jiné chování.
  • Nezávislý na časovém pásmu: Bez převodu časového pásma. Toto je výchozí chování pro formát Pouze datum.

Nastavte časové pásmo uživatele v osobních možnostech, nikoli časové pásmo systému ve Windows, Androidu, iOSu nebo macOS. Nicméně, systémové časové pásmo může ovlivnit klientské skripty, které pracují s daty JavaScript.

Formát

Všechny sloupce data a času mají časovou část, pokud není jejich chování Pouze datum. Formát: určuje, zda se má zobrazit časová část hodnoty.

  • Datum a čas: Zobrazuje datum a čas hodnoty.
  • Pouze datum: Zobrazuje pouze datovou část hodnoty.

Poznámka:

Uživatelé mohou stále změnit časovou část, pokud je Formát nastaven na Pouze datum. Například pomocí volání webového rozhraní API nebo pomocí ovládacího prvku, který má časovou část. Toto chování se liší od chovánípouze data, kdy není uložena vůbec časová část.

Pokyny k používání

Použijte Nezávislé na časovém pásmu, když nejsou vyžadovány informace o časovém pásmu, například u časů přihlášení do hotelu. S tímto nastavením uvidí uživatelé ve všech časových pásmech stejnou hodnotu data a času.

Datum použijte jenom v případě, že nejsou vyžadovány informace o čase dne a časovém pásmu, například narozeniny nebo výročí. S tímto nastavením uvidí uživatelé ve všech časových pásmech naprosto stejnou hodnotu data.

Časové pásmo nezávislé pouze s datem je prakticky stejné jako nastavení sloupce jako Pouze datum. Pokud si nejste jisti, zda budete v budoucnu časovou část potřebovat, použijte první.

Důležité

Vyhněte se formátu Pouze datum s chováním Místní čas uživatele. Uživatelé v různých časových pásmech mohou vidět jiné datum, což ve většině scénářů není zamýšleno. Když uživatel nastaví datum v modelem řízené aplikaci, časová část se automaticky nastaví na půlnoc svého časového pásma. To může způsobit, že se ostatním uživatelům zobrazí datum o den dříve nebo později.

Examples

Hodnoty zobrazení

Dataverse ukládá 2023-10-15T07:30:00Z (nebo 2023-10-15 pro chování Pouze datum). Uživatelé v časovém pásmu UTC-8 je uvidí v modelem řízené aplikaci nebo s požadavkem Web API na formátovanou hodnotu:

Behavior Formát Hodnota zobrazení
Místní čas uživatele Datum a čas 14. října 2023, 23:30
Místní čas uživatele Pouze datum 14. října 2023
Nezávislé na časovém pásmu Datum a čas 15. října 2023, 7:30
Nezávislé na časovém pásmu Pouze datum 15. října 2023
Pouze datum - 15. října 2023

Zadejte hodnoty v aplikaci

Uživatelé v časovém pásmu UTC-8 zadají October 14th, 2023, 11:30 pm do modelem řízené aplikace. Hodnota je uložena v Dataverse jako:

Behavior Formát Uložená hodnota v Dataverse
Místní čas uživatele Datum a čas 2023-10-15T07:30:00Z
Místní čas uživatele Pouze datum 2023-10-15T07:30:00Z
Nezávislé na časovém pásmu Datum a čas 2023-10-14T23:30:00Z
Nezávislé na časovém pásmu Pouze datum 2023-10-14T23:30:00Z
Pouze datum - 2023-10-14

Pokud uživatel zadá pouze datum October 14th, 2023, předpokládá se, že časová část je 24:00.

Behavior Formát Uložená hodnota v Dataverse
Místní čas uživatele Pouze datum 2023-10-14T08:00:00Z
Nezávislé na časovém pásmu Pouze datum 2023-10-14T00:00:00Z
Pouze datum - 2023-10-14

Zadejte neplatné hodnoty v aplikaci

Různí klienti mají různé způsoby, jak zpracovat neplatný vstup. Například v tichomořském časovém pásmu začal letní čas 12. března 2023 ve 2:00 a čas se posunul o hodinu dopředu na 3:00. Čas mezi 2:00 a 3:00 v daný den neexistuje. Když se uživatelé pokusí zadat hodnotu v tomto časovém rozsahu, aplikace mohou provést jednu z následujících akcí:

  • Změňte na předchozí nebo další platný čas.
  • Vrátit se k poslední známé hodnotě.
  • Zobrazit chybovou zprávu.
  • V nástroji pro výběr času nezobrazujte časy mezi 2:00 a 3:00, aby si je uživatelé nemohli vybrat.

Podobně mají různí klienti různé způsoby, jak nakládají s opakovanými časovými rozsahy. Například v tichomořském časovém pásmu skončilo letní čas 5. listopadu 2023 v 2:00, což posune čas zpět o hodinu do 1:00. Čas mezi 1:00 a 2:00 se v daný den dvakrát opakuje. Čas jako 1:30 může odkazovat na obě časová pásma. Pokud potřebujete jednoznačně zobrazit nebo zadat časy v tomto rozsahu, je nejlepší dočasně přepnout na časové pásmo, které nepoužívá letní čas.

Získejte nezpracované hodnoty pomocí webového rozhraní API

Dataverse ukládá 2023-10-15T07:30:00Z (nebo 2023-10-15 pro chování Pouze datum). Uživatelé ve všech časových pásmech získají tyto hodnoty s požadavkem webového rozhraní API pro hodnotu:

Behavior Formát Surová hodnota
Místní čas uživatele Datum a čas 2023-10-15T07:30:00Z
Místní čas uživatele Pouze datum 2023-10-15T07:30:00Z
Nezávislé na časovém pásmu Datum a čas 2023-10-15T07:30:00Z
Nezávislé na časovém pásmu Pouze datum 2023-10-15T07:30:00Z
Pouze datum - 2023-10-15

Získejte hodnoty pomocí rozhraní API klienta

Uživatelé v časovém pásmu UTC-8 zadají October 14th, 2023, 11:30 pm do modelem řízené aplikace. Funkce Klientského rozhraní API jako formContext.getAttribute(<column name>).getValue() vrací hodnotu s aplikovanými úpravami časového pásma:

Behavior Formát Javascript dateValue.toUTCString()
Místní čas uživatele Datum a čas 2023-10-15 07:30 (UTC)
Místní čas uživatele Pouze datum 2023-10-15 07:30 (UTC)

Pro chování Nezávislý na časovém pásmu je hodnota JavaScript Date v časovém pásmu prohlížeče:

Behavior Formát Javascript dateValue.toString()
Nezávislé na časovém pásmu Datum a čas 2023-10-14 23:30 (časové pásmo prohlížeče)
Nezávislé na časovém pásmu Pouze datum 2023-10-14 23:30 (časové pásmo prohlížeče)

Hodnoty data JavaScriptu mají vždy časovou složku. Proto má chování Pouze datum časovou složku 24:00:

Behavior Formát Javascript dateValue.toString()
Pouze datum - 2023-10-15 00:00 (časové pásmo prohlížeče)

Poznámka:

Hodnoty data JavaScriptu jsou ovlivněny časovým pásmem prohlížeče, který pochází z nastavení operačního systému zařízení.

V případě místního chování uživatele interpretujte výsledek klientského rozhraní API jako hodnotu UTC. Použijte Date.getUTCDate() nebo Date.getUTCHours() k práci s ním. Chcete-li získat, co uživatel vidí, použijte getTimeZoneOffsetMinutes. Nepoužívejte Date.getDate() nebo Date.getHours() protože tyto funkce zobrazují hodnotu v časovém pásmu prohlížeče.

V případě chování nezávislé na časovém pásmu a pouze datum interpretujte výsledek rozhraní API klienta jako hodnotu v časovém pásmu prohlížeče. Použijte Date.getDate() nebo Date.getHours() k práci s ním. Nepoužívejte Date.getUTCDate() ani Date.getUTCHours(), protože nemusíte upravovat na žádná časová pásma.

Změna chování místního času uživatele

Pokud vydavatel spravovaného řešení nebrání změně místního chování, můžete změnit chování existujících vlastních sloupců kalendářních dat z místního uživatele na pouze datum nebo časové pásmo nezávislé. Jedná se o jednorázovou změnu.

Změna chování sloupce ovlivní hodnoty sloupců, které jsou přidány nebo změněny poté, co bylo změněno chování sloupce. Existující hodnoty sloupce zůstanou v databázi ve formátu časového pásma standardu UTC. Chcete-li změnit chování stávajících hodnot sloupců z UTC na Pouze datum, možná budete potřebovat pomoc vývojáře, aby převedl chování existujících hodnot data a času v databázi.

Výstraha

Před změnou chování existujícího sloupce data a času zkontrolujte všechny závislosti sloupce, jako jsou obchodní pravidla, pracovní postupy, počítané sloupce nebo souhrnné sloupce, a ujistěte se, že v důsledku změny chování nedošlo k žádným problémům. Po změně chování sloupce Datum a čas otevřete každé obchodní pravidlo, pracovní postup, počítané nebo souhrnné sloupce, které jsou závislé na sloupci, který jste změnili, zkontrolovat informace a uložit je, aby byly používány nejnovější hodnoty a chování sloupce Datum a čas.

Změna chování během importu řešení

Při importu řešení, které obsahuje sloupec Datum s místním uživatelem, můžete změnit chování na Datum pouze nebo časové pásmo nezávislé.

Poznámka:

Chování existujícího spravovaného sloupce Pouze datum nebo Datum a čas můžete změnit pouze v případě, že jste vydavatel. Chcete-li provést změnu v těchto polích, je třeba provést upgrade řešení, které přidalo sloupec Pouze datum nebo Datum a čas. Další informace: Upgrade nebo aktualizace řešení

Zabránit změně chování

Při distribuci vlastního datového sloupce ve spravovaném řešení, můžete zabránit uživatelům používajícím vaše řešení ve změně chování nastavením spravované vlastnosti CanChangeDateTimeBehavior na False. Další informace: Nastavení spravovaných vlastností pro sloupce

Operátory dotazu datum a čas nejsou podporovány pro chování Pouze datum

Následující související operátory dotazu datum a čas jsou pro chování Pouze datum neplatné. Neplatný operátor vyvolá výjimku, je-li jeden z těchto operátorů použit v dotazu.

  • Starší než X minut
  • Starší než X hodin
  • Posledních X hodin
  • Příštích X hodin

Viz také

Řešení problémů s datem a časem v aplikacích řízených modelem
Vytváření a úprava sloupců
Definování počítaných sloupců pro automatizaci ručních výpočtů
Spravované vlastnosti sloupce
Spravované vlastnosti
Blog: Práce s časovými pásmy v Dataverse
Konfigurace chování a formát sloupce data a času pomocí kódu