DateTimeField
De DateTimeField-component stelt gebruikers in staat om zowel een datum als een tijd in één veld in te voeren, inclusief jaar, maand, dag, uren en minuten. Het valideert invoer op nauwkeurigheid en kan een datum-tijdkiezer tonen om de selectie gemakkelijker te maken.
Gebruik van DateTimeField
This class is a Field component, and inherits its features and behaviors. For an overview of Field properties, events, and other important information, please refer to the Field documentation.
DateTimeField breidt de gedeelde Field-klasse uit, die gemeenschappelijke functies biedt voor alle veldcomponenten. Het volgende voorbeeld creëert een gelabeld DateTimeField voor het selecteren van een vertrekdatum en -tijd.
Toepassingen
De DateTimeField is het beste te gebruiken in scenario's waar het essentieel is om zowel de datum als de tijd vast te leggen of weer te geven in uw app. Hier zijn enkele voorbeelden wanneer u de DateTimeField kunt gebruiken:
- Evenementplanning en agenda's: Laat gebruikers evenementen efficiënt plannen, afspraken boeken en hun agenda's beheren door ze een enkel component te geven waarmee ze de datum en tijd kunnen kiezen.
- Inchecken en uitchecken: Vergemakkelijk de keuze van gebruikers voor incheck- en uitchecktijden wanneer de periode meerdere dagen kan beslaan.
-
Gegevensregistratie en tijdstempels: Gebruik
DateTimeFieldsvoor apps die de datum en tijd van gebeurtenissen of wanneer een gebruiker gegevens indient, moeten registreren. -
Taakbeheer en deadlines:
DateTimeFieldszijn waardevol in toepassingen die taakbeheer of het instellen van deadlines omvatten waarbij zowel de datum als de tijd relevant zijn voor nauwkeurige planning.
Veldwaarde (LocalDateTime)
Intern vertegenwoordigt de DateTimeField-component zijn waarde met een LocalDateTime-object uit het java.time-pakket. Waarden worden afgerond tot minuten, zodat seconden en fracties van seconden worden weggegooid.
De browser toont de datum en tijd volgens de lokale instellingen van de gebruiker, terwijl de tekstwaarde van het veld het formaat yyyy-MM-ddTHH:mm gebruikt. LocalDateTime omvat geen tijdzone, en invoer met een tijdzone-suffix zoals Z of +02:00 wordt niet geaccepteerd.
Waarde ophalen en instellen
Om de huidige waarde op te halen, gebruikt u de getValue()-methode:
LocalDateTime value = dateTimeField.getValue();
Om de waarde programmatatisch in te stellen, gebruikt u de setValue()-methode:
dateTimeField.setValue(LocalDateTime.of(2024, 4, 27, 14, 30));
Gebruik van setText()
Om de waarde vanuit een ruwe tekenreeks in te stellen, gebruikt u setText() met een lokale datum-tijd, zoals yyyy-MM-ddTHH:mm. Invoer kan ook seconden of fracties van seconden bevatten, die dan worden weggegooid.
dateTimeField.setText("2024-04-27T14:30"); // geldig
dateTimeField.setText("2024-04-27T14:30:45"); // geldig; secondes worden weggegooid
dateTimeField.setText("24-04-27T14:30"); // ongeldig; gebruik een viercijferig jaar
dateTimeField.setText("2024-04-27T14:30Z"); // ongeldig; tijdzone-suffixen worden niet geaccepteerd
Bij het gebruik van setText() wordt een IllegalArgumentException gegooid als de invoer niet kan worden geparsed als een geldige lokale datum-tijd. Zowel invoer met minuut-nauwkeurigheid als invoer met seconden worden geaccepteerd, maar tijdzone-suffixen niet.
Statische hulpmiddelen
De DateTimeField-klasse biedt ook de volgende statische hulpprogramma's:
-
fromDateTime(String dateTimeAsString): parseer een lokale datum-tijdtekenreeks, met of zonder seconden, naar eenLocalDateTimedat is afgerond tot minuten. -
toDateTime(LocalDateTime dateTime): converteer eenLocalDateTimenaar een tekenreeks in het formaatyyyy-MM-ddTHH:mm. Seconden en fracties van seconden worden weggegooid. -
isValidDateTime(String dateTimeAsString): controleer of een tekenreeks een geldige lokale datum-tijd is. Invoer met seconden of fracties van seconden wordt geaccepteerd. Retourneertfalsevoor ongeldige invoer of tijdzone-suffixen.
Min- en maxwaarde
De minwaarde
Als de waarde die in het component is ingevoerd eerder is dan de opgegeven minimale tijdstempel, zal het component niet voldoen aan de constraint-validatie. Wanneer zowel de min- als maxwaarde zijn ingesteld, moet de minwaarde een tijdstempel zijn die hetzelfde is of eerder dan de maxwaarde.
// Stel de minimum toegestane tijdstempel in: 1 januari 2023 om 08:00
dateTimeField.setMin(LocalDateTime.of(2023, 1, 1, 8, 0));
De maxwaarde
Als de waarde die in het component is ingevoerd later is dan de opgegeven maximale tijdstempel, zal het component niet voldoen aan de constraint-validatie. Wanneer zowel de min- als maxwaarde zijn ingesteld, moet de maxwaarde een tijdstempel zijn die hetzelfde is of later dan de minwaarde.
// Stel de maximale toegestane tijdstempel in: 31 december 2023 om 18:00
dateTimeField.setMax(LocalDateTime.of(2023, 12, 31, 18, 0));
Beste praktijken
Om een optimale gebruikerservaring te waarborgen bij het gebruik van de DateTimeField-component, overweeg de volgende beste praktijken:
-
Gepersonaliseerde datumweergave: Door het datumformaat te lokaliseren en regionale voorkeuren te integreren, zorg je ervoor dat data in een vertrouwd formaat aan de gebruiker worden gepresenteerd.
-
Tijdzones apart behandelen: als uw app over tijdzones heen werkt, bied dan een aparte tijdzone-selector aan en behandel conversies in uw app. De
DateTimeFieldslaat alleen de lokale datum en tijd op. -
Toegankelijkheid: Gebruik de
DateTimeFieldmet toegankelijkheid in gedachten. Zorg ervoor dat het voldoet aan toegankelijkheidsnormen, zoals het bieden van goede labels en compatibel zijn met ondersteunende technologieën. -
Auto-invullen van de huidige datum: overweeg een optie te bieden om de huidige datum en tijd automatisch in te vullen als standaardwaarde in het datumtijdveld, indien passend voor het gebruiksdoel van uw app.