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.

Två alternativ är tillgängliga för kolumner för datum och tid.

  • Beteende: Om värden för tidszoner ska justeras.
  • Format: Om tidsdelen av värdet ska visas eller inte.

Funktionssätt

Dataverse lagrar alla datum- och tidsvärden i UTC-tidszonen. När appen visar värden eller bearbetningsvärden som angetts av användare och Dataverse modellbaserade appar kan justera för användarens tidszon med dessa alternativet funktion.

  • Användarlokalt: Justera värden för användarens tidszon. Det här är standardbeteendet. Du kan ändra detta en gång till ett annat beteende.
  • Oberoende av tidszon: Ingen konvertering av tidszon.
  • Endast datum: Ingen konvertering av tidszon. Till skillnad från Tidszonsberoende, lagras inte tidsdelen.

Användarens tidszon anges i personliga alternativ, i 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 dess funktion inte ä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.

Anteckning

Användare kan fortfarande ändra tidsdelen om Format är Endast datum. Till exempel med webb-API-anrop eller med hjälp av en kontroll som har tidsdelen. Detta skiljer sig från funktionen Endast datum Beteende där tidsdelen inte lagras alls.

Riktlinjer för användning

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

Använd beteendet Endast datum i de fall när information om tiden för dagen och tidszon inte behövs, till exempel födelsedagar och årsdagar. Med det här alternativet ser alla användare i alla tidszoner exakt samma värde för datum.

Tidszonsoberoende beteende med format Endast datum fungerar på samma sätt som beteendet Endast datum. Använd den förra om du inte är säker på om du behöver tidsdelen i framtiden.

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 modelldrivna appen eller med en Webb API-begäran för det formaterade värdet:

Funktionssätt 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:

Funktionssätt 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.

Funktionssätt 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. Exempelvis började sparande av sparande i Pacific-tidszonen den 12 mars 2023 klockan 02:00. Tiden flyttas fram 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. Exempelvis slutade sparande av sparande i Pacific-tidszonen den 5 november 2023 klockan 02:00. Tiden flyttas bak 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 hämtar dessa med en webb-API-begäran för värdet:

Funktionssätt 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:

Funktionssätt 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:

Funktionssätt 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:

Funktionssätt Format JavaScript dateValue.toString()
Endast datum - 2023-10-15 00:00 (tidszon i webbläsaren)

Anteckning

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

För beteendet Användarlokalt hos användare bör klient-API-resultatet tolkas som ett UTC-värde. Använda Date.getUTCDate(), Date.getUTCHours(), etc. för att arbeta med det. Om du vill se vad användaren ser använder du getTimeZoneOffsetMinutes. Använd inte Date.getDate(), Date.getHours(), etc. eftersom värdet visas i webbläsarens tidszon.

För beteende som är Tidszonsoberoende och Endast datum bör klient-API-resultatet användas som ett värde i webbläsarens tidszon. Använda Date.getDate(), Date.getHours(), etc. för att arbeta med det. Använd inte Date.getUTCDate() Date.getUTCHours() och så vidare eftersom du inte behöver justera tidszoner.

Ändra användarlokal funktion

Såvida inte utgivaren av en hanterad lösning förhindrar det kan du ändra funktionen för befintliga anpassade datumkolumner från Användarlokalt 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 funktionen för en befintligt kolumn för datum och tid bör du granska alla kolumnens beroenden, till exempel affärsregler, arbetsflöden, beräknade kolumn eller sammanslagningskolumn, detta i syfte att säkerställa att funktionändringen inte medför några problem. 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 beteendet Användarlokalt kanske du har möjlighet att ändra beteendet till Endast datum eller Tidszonsoberoende.

Anteckning

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 modellstyrda 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

Anteckning

Kan du berätta om dina inställningar för dokumentationsspråk? Svara i en kort undersökning. (observera att undersökningen är på engelska)

Undersökningen tar ungefär sju minuter. Inga personuppgifter samlas in (sekretesspolicy).