Beteende och format för kolumnen Datum och tid

I Microsoft Dataverse kan du ange hur värden för datum och tid ska visas för användarna och hur de ska justeras för tidszoner.

Förutom de standardegenskaper som är tillgängliga med de flesta kolumner har datum- och tidskolumner två extra egenskaper:

  • Tidszonsjustering: Om du vill justera värden för tidszoner.
  • Format: Om tidsdelen av värdet ska visas eller inte.

Tidszonsjustering

Dataverse lagrar alla datum- och tidsvärden i UTC-tidszonen. När din app visar värden eller bearbetar värden som användare har angett kan Dataverse och modellbaserade appar justera efter användarens tidszon med dessa alternativ för beteende.

  • Användarlokalt: Justera värden för användarens tidszon. Detta är standardbeteendet för formatet Datum och tid. Du kan ändra detta en gång till ett annat beteende.
  • Oberoende av tidszon: Ingen konvertering av tidszon. Detta är standardbeteendet för formatet Endast datum.

Ange användarens tidszon i personliga alternativ, inte systemets tidszon i Windows, Android, iOS eller macOS. Systemtidszonen kan dock påverka klientskript som fungerar med JavaScript-datum.

Format

Alla datum- och tidskolumner har en tidsdel om inte deras beteende är Endast datum. Format bestämmer om tidsdelen av värdet ska visas eller inte.

  • Datum och tid: Visar datum och tid för värdet
  • Endast datum: Visar endast datumdelen för värdet.

Anmärkning

Användare kan fortfarande ändra tidsdelen om Format är Endast datum. Till exempel genom att använda webb-API-anrop eller med hjälp av en kontroll som har tidsdelen. Det här beteendet skiljer sig från Beteende endast för datum, där tidsdelen inte lagras alls.

Användningsriktlinjer

Använd Tidszonsoberoende när tidszonsinformation inte krävs, till exempel incheckningstider för hotell. Med det här alternativet ser alla användare i alla tidszoner exakt samma värde för datum och tid.

Använd endast Datum när information om tiden på dagen och tidszonen inte krävs, till exempel födelsedagar eller årsdagar. Med det här alternativet ser alla användare i alla tidszoner exakt samma värde för datum.

Tidszonsoberoende med Endast Datum är praktiskt taget detsamma som att ange kolumnen som Endast datum. Använd den förra om du inte är säker på om du behöver tidsdelen i framtiden.

Important

Undvik endast Datumformat med Användarlokalt beteende. Användare i olika tidszoner kan se ett annat datum, vilket inte är avsett i de flesta situationer. När en användare anger ett datum i en modelldriven app anges tidsdelen automatiskt till midnatt för tidszonen. Detta kan göra att andra användare kan se datumet en dag tidigare eller senare.

Exempel

Visningsvärde

Dataverse lagrar 2023-10-15T07:30:00Z (eller 2023-10-15 för beteendet Endast datum). Användare i tidszonen UTC-8 ser dessa i den modellbaserade appen eller med en Webb API-begäran för det formaterade värdet:

Beteende Format Visningsvärde
Användarlokalt Datum och tid 14 oktober 2023, 11:30
Användarlokalt Endast datum 14 oktober 2023
Tidszonsoberoende Datum och tid 15 oktober 2023, 07:30
Tidszonsoberoende Endast datum 15 oktober 2023
Endast datum - 15 oktober 2023

Ange värden i en app

Användare i tidszonen UTC-8 anger October 14th, 2023, 11:30 pm i en modellbaserad app. Värdet sparas i Dataverse som:

Beteende Format Värdet sparades i Dataverse
Användarlokalt Datum och tid 2023-10-15T07:30:00Z
Användarlokalt Endast datum 2023-10-15T07:30:00Z
Tidszonsoberoende Datum och tid 2023-10-14T23:30:00Z
Tidszonsoberoende Endast datum 2023-10-14T23:30:00Z
Endast datum - 2023-10-14

Om användaren anger bara datumet October 14th, 2023, tidsdelen antas vara 12:00.

Beteende Format Värdet sparades i Dataverse
Användarlokalt Endast datum 2023-10-14T08:00:00Z
Tidszonsoberoende Endast datum 2023-10-14T00:00:00Z
Endast datum - 2023-10-14

Ange ogiltiga värden i en app

Det finns olika sätt att hantera ogiltiga indata på olika klienter. I tidszonen Pacific startade till exempel sommartid den 12 mars 2023 kl. 02:00, vilket flyttar tiden framåt en timme till 03:00. Tiden mellan 02:00 och 03:00 den dagen finns inte. När användare försöker ange ett värde i den tidsperioden kan något av följande hända:

  • Ändra till föregående eller nästa giltiga tid.
  • Återställ till det senaste kända värdet.
  • Visa ett felmeddelande.
  • Visa inte tider mellan 02:00 och 03:00 i tidväljaren, så att användarna inte kan välja dem från början.

På samma sätt kan olika klienter hantera upprepade tidsintervall på olika sätt. I tidszonen Pacific avslutades till exempel sommartid den 5 november 2023 kl. 02:00 och tiden flyttades bakåt en timme till 01:00. Tiden mellan 01:00 och 02:00 den dagen upprepas två gånger. En tid som 01:30 kan referera till båda tidszonerna. Om du behöver visa eller ange tider i intervallet bör du tillfälligt växla till en tidszon där det inte används för att spara tid.

Hämta råa värden med webb-API

Dataverse lagrar 2023-10-15T07:30:00Z (eller 2023-10-15 för beteendet Endast datum). Användare i alla tidszoner får dessa värden med en webb-API-begäran för värdet:

Beteende Format Rått värde
Användarlokalt Datum och tid 2023-10-15T07:30:00Z
Användarlokalt Endast datum 2023-10-15T07:30:00Z
Tidszonsoberoende Datum och tid 2023-10-15T07:30:00Z
Tidszonsoberoende Endast datum 2023-10-15T07:30:00Z
Endast datum - 2023-10-15

Hämta värden med klient-API

Användare i tidszonen UTC-8 anger October 14th, 2023, 11:30 pm i en modellbaserad app. Klient-API-funktioner som formContext.getAttribute(<column name>).getValue() returnerar värdet med tidszonsanpassningar som tillämpas:

Beteende Format Javascript dateValue.toUTCString()
Användarlokalt Datum och tid 2023-10-15 07:30 (UTC)
Användarlokalt Endast datum 2023-10-15 07:30 (UTC)

För beteendet oberoende tidszon är värdet för JavaScript-datum i webbläsarens tidszon:

Beteende Format Javascript dateValue.toString()
Tidszonsoberoende Datum och tid 2023-10-14 23:30 (tidszon i webbläsaren)
Tidszonsoberoende Endast datum 2023-10-14 23:30 (tidszon i webbläsaren)

JavaScript-datumvärden har alltid en tidskomponent. Det är därför som beteendet Endast datum har tidskomponenten 24:00:

Beteende Format Javascript dateValue.toString()
Endast datum - 2023-10-15 00:00 (tidszon i webbläsaren)

Anmärkning

JavaScript-datumvärden påverkas av webbläsarens tidszon, som kommer från inställningarna för enhetsoperativsystemet.

För Lokalt användarbeteende tolkar du resultatet av klient-API:et som ett UTC-värde. Använd Date.getUTCDate() eller Date.getUTCHours() för att arbeta med det. Om du vill se vad användaren ser använder du getTimeZoneOffsetMinutes. Använd Date.getDate() inte eller Date.getHours() för att dessa funktioner visar värdet i webbläsarens tidszon.

För Oberoende tidszon och Endast datum tolkar du resultatet av klient-API:et som ett värde i webbläsarens tidszon. Använd Date.getDate() eller Date.getHours() för att arbeta med det. Använd inte Date.getUTCDate() eller Date.getUTCHours() för att du inte behöver justera för några tidszoner.

Ändra användarlokal funktion

Om inte utgivaren av en hanterad lösning förhindrar att det lokala beteendet ändras kan du ändra beteendet för befintliga anpassade datumkolumner från Användare lokalt till Endast datum eller Tidszonsoberoende. Detta är en engångsändring.

Om du ändrar kolumnfunktionen påverkas de kolumnvärden som läggs till eller ändras efter att kolumnfunktionen ändrades. De befintliga kolumnvärdena finns kvar i databasen i UTC-tidszonsformat. Om du endast vill ändra funktionen för de befintliga kolumnvärdena från UTC till Endast datum, kan du behöva hjälp av en utvecklare för att konvertera beteendet för befintliga datum- och tidvärden i databasen.

Varning

Innan du ändrar beteendet för en befintlig datum- och tidskolumn granskar du alla beroenden i kolumnen, till exempel affärsregler, arbetsflöden, beräknade kolumner eller sammanslagningskolumner, för att säkerställa att det inte finns några problem till följd av att beteendet ändras. När du har ändrat funktionen hos en kolumn för datum och tid bör du öppna varje affärsregel, arbetsflöde, beräknat kolumn och sammanslagningskolumn som är beroende av kolumnen du har ändrat. Granska informationen och spara den för att säkerställa att det senaste datum och tid-kolumnens funktion och värde används.

Ändra funktion i samband med lösningsimport

När du importerar en lösning som innehåller en datumkolumn med Användarlokal kan du ändra beteendet till Endast datum eller Tidszonsoberoende.

Anmärkning

Du kan bara ändra beteendet hos en befintlig hanterad kolumn för Endast datum eller Datum och tid om du är utgivaren. För att kunna göra en ändring i de här fälten måste en uppgradering göras i lösningen som lade till kolumnen Endast datum eller Datum och tid. Mer information: Uppgradera eller uppdatera en lösning

Förhindra funktionsbyte

Om du distribuerar en anpassad datumkolumn i en hanterad lösning kan du förhindra att personer som använder lösningen ändrar funktionen genom att ange den hanterade egenskapen CanChangeDateTimeBehavior som False. Mer information finns i Ange hanterade egenskaper för kolumner

Frågeoperatorer för datum och tid stöds inte för funktionen Endast datum

Följande frågeoperatorer för datum och tid är ogiltiga för funktionen Endast datum. Ett undantagsfel om ogiltig operator uppstår om någon av dessa operatorer används i frågan.

  • Tidigare än X minuter
  • Tidigare än X timmar
  • Senaste X timmarna
  • Kommande X timmarna

Se även

Felsöka datum och tidsproblem i modellbaserade appar
Skapa och redigera kolumner
Definiera beräknade kolumner för att automatisera manuella beräkningar
Kolumnhanterade egenskaper
Hanterade egenskaper
Blogg: arbeta med tidszoner i Dataverse
Konfigurera beteendet och formatet för datum- och tidskolumnen med hjälp av kod