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.
Pro sloupce data a času jsou k dispozici dvě možnosti.
- Chování: Zda upravit hodnoty pro časová pásma.
- Formát: Zda se má zobrazit časová část hodnoty.
Chování
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í. 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.
- Pouze datum: Bez převodu časového pásma. Na rozdíl od položky Nezávislé na časovém pásmu není časová část uložena.
Je nastaveno časové pásmo uživatele v osobních možnostech, nikoli systémové časové pásmo ve Windows, Android, iOS 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 se liší od možnosti Pouze datum položky Chování, kde časová část není uložena vůbec.
Pokyny pro používání
Chování Nezávislý na časovém pásmumůžete použít, když nejsou požadovány informace o časovém pásmu, například při ubytování v hotelu. S tímto nastavením uvidí uživatelé ve všech časových pásmech stejnou hodnotu data a času.
Chování Pouze datum použijte, když nejsou požadovány informace o času 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.
Chování Nezávislý na časovém pásmu s formátem Pouze datum je prakticky stejné jako chování 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 jeho č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.
Příklady
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:
Chování | 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:
Chování | 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.
Chování | 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 jednu 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čil letní čas 5. listopadu 2023 ve 2:00 a čas se posunul o jednu hodinu zpět na 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 je získají s požadavkem webového rozhraní API na hodnotu:
Chování | 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:
Chování | 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:
Chování | 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:
Chování | 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í.
Pro chování Místní čas uživatele by měl být výsledek klientského rozhraní API interpretován jako hodnota UTC. Pro práci s ním použijte Date.getUTCDate()
, Date.getUTCHours()
atd. Chcete-li získat, co uživatel vidí, použijte getTimeZoneOffsetMinutes. Nepoužívejte Date.getDate()
, Date.getHours()
atd., protože ty zobrazí hodnotu v časovém pásmu prohlížeče.
Pro chování Nezávislý na časovém pásmu a Pouze datum by měl být výsledek klientského rozhraní API interpretován jako hodnota v časovém pásmu prohlížeče. Pro práci s ním použijte Date.getDate()
, Date.getHours()
atd. Nepoužívejte Date.getUTCDate()
, Date.getUTCHours()
a tak dále, protože se nemusíte přizpůsobovat žádným časovým pásmům.
Změna chování místního času uživatele
Pokud tomu vydavatel spravovaného řešení nebrání, můžete změnit chování existujících vlastních sloupců data z Místní čas uživatele na Pouze datum nebo Nezávislý na časovém pásmu. 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.
Upozornění
Dříve, než změníte chování existujícího sloupce Datum a čas, byste měli zkontrolovat všechny závislosti tohoto sloupce, například obchodní pravidla, pracovní postupy a počítané nebo souhrnné sloupce, abyste se ujistili, že při změně chování nedojde 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 chováním Místní čas uživatele můžete změnit chování na Pouze datum nebo Nezávislý na časovém pásmu.
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
Poznámka
Můžete nám sdělit, jaké máte jazykové preference pro dokumentaci? Zúčastněte se krátkého průzkumu. (upozorňujeme, že tento průzkum je v angličtině)
Průzkum bude trvat asi sedm minut. Nejsou shromažďovány žádné osobní údaje (prohlášení o zásadách ochrany osobních údajů).