Comment travailler avec le calendrier à Java?
Utilisez des classes dans le package Java.Time pour remplacer les anciennes classes de date et de calendrier; 2. Obtenez la date et l'heure actuelles via LocalDate, LocalDateTime et Localtime; 3. Créez une date et une heure spécifiques en utilisant la méthode OF (); 4. Utilisez la méthode plus / moins pour augmenter et diminuer le temps; 5. Utilisez ZonedDateTime et ZoneID pour traiter le fuseau horaire; 6. Format et chaînes de date d'analyse via DateTimeFormatter; 7. Utilisez instantanément pour être compatible avec les anciens types de dates si nécessaire; Le traitement des dattes dans le Java moderne devrait donner la priorité à l'utilisation de l'API Java.Time, qui fournit une interface claire, immuable et filiale, adaptée à la plupart des scénarios pratiques, et peut éviter efficacement les défauts des classes de dattes traditionnelles.
Travailler avec des calendriers en Java peut être déroutant si vous utilisez des méthodes obsolètes, mais le Java moderne (en particulier à partir de Java 8) offre un moyen beaucoup plus propre et indépendant de gérer les dates et les temps via le package java.time
. Voici un guide pratique sur la façon de travailler efficacement avec les calendriers.

✅ Utilisez java.time
au lieu de vieilles classes de date / calendrier
Évitez les vieilles classes java.util.Date
et java.util.Calendar
- elles sont mutables, pas en file et difficile à travailler. Au lieu de cela, utilisez l'API java.time
introduit dans Java 8 .
Classes clés:

-
LocalDateTime
- Date et heure sans fuseau horaire -
ZonedDateTime
- Date et heure avec le fuseau horaire -
LocalDate
- Juste une date (par exemple, 2025-04-05) -
LocalTime
- juste un moment (par exemple, 14h30) -
YearMonth
,MonthDay
, etc. - Types de dates spécialisées
? 1. Obtenez la date et l'heure actuelles
import java.time.localatetime; import java.time.localdate; import java.time.localtime; LocalDateTime Now = localDateTime.now (); System.out.println ("MAINTENANT:" MAINTENANT); LocalDate aujourd'hui = localDate.now (); System.out.println ("Aujourd'hui:" Aujourd'hui); LocalTime Heure = LocalTime.Now (); System.out.println ("Heure actuel:" Time);
Cela vous donne des objets propres et immuables représentant le moment actuel.
? ️ 2. Créez des dates spécifiques
Vous pouvez facilement créer des dates fixes:

Anniversaire localdate = localDate.of (1990, 5, 15); // année, mois, jour // ou utiliser un mois enum LocalDate Noël = localDate.of (2025, java.time.month.de décembre, 25);
De même pour le temps:
Localtime Meetingtime = localtime.of (14, 30); // 14h30
Combinez la date et l'heure:
Event localDateTime = localDateTime.of (2025, 3, 20, 9, 0); // 20 mars, 9h00
➕ 3. Ajouter ou soustraire le temps (immuable)
Tous les objets java.time
sont immuables , vous obtenez donc une nouvelle instance lors de la modification.
LocalDate aujourd'hui = localDate.now (); LocalDate Nextweek = Today.Plusweeks (1); LocalDate NextMonth = Today.Plusmonths (1); Tendayso localdate = Today.Minusdays (10); System.out.println ("La semaine prochaine:" Nextweek);
Fonctionne de manière similaire pour LocalDateTime
, LocalTime
, etc.
? 4. Travailler avec des fuseaux horaires (ZonedDateTime)
Si vous avez besoin de fuseaux horaires (par exemple, programmé dans toutes les régions):
import java.time.zoneid; import java.time.zoneddatetime; ZONEID NYZONE = ZONEID.OF ("America / New_york"); ZonedDateTime nytime = zoneddatetime.now (nyzone); ZoneId LondonZone = ZoneId.of ("Europe / Londres"); ZonedDateTime Londontime = ZonedDateTime.now (LondonZone); System.out.println ("NY:" NYtime); System.out.println ("Londres:" Londontime);
Vous pouvez également convertir entre les zones:
ZonedDateTime nyinlondontime = nytime.withzonesAmyInstant (LondonZone);
? 5. Dates de format et d'analyse
Convertir en / à partir de chaînes à l'aide de DateTimeFormatter
.
import java.time.format.datetimeFormatter; Date locale = localDate.of (2025, 4, 5); DateTimeFormatter Formatter = DateTimeFormatter.ofpattern ("dd-mm-yyy"); Chaîne formatée = date.format (format); // "05-04-2025" System.out.println (formaté); // Analyser la chaîne à ce jour String Input = "15-08-2023"; LocalDate analysé = localDate.Parse (entrée, format);
Modèles communs:
-
"yyyy-MM-dd"
→ 2025-04-05 -
"dd/MM/yyyy HH:mm"
→ 05/04/2025 14:30 -
"MMM dd, yyyy"
→ 05 avril 2025
? 6. Compatibilité héritée (si nécessaire)
Si vous devez interagir avec les anciennes API qui utilisent java.util.Date
:
Importer java.util.date; import java.time.instant; // Convertir localDateTime à ce jour LocalDateTime ldt = localDateTime.now (); Date oldDate = Date.from (ldt.atzone (ZoneId.SystemDefault ()). TOInstant ()); // Convertir la date de localDateTime Date LegacyDate = new Date (); LocalDateTime ldt2 = LegacyDate.toinstant () .atZone (ZoneId.SystemDefault ()) .TolocaldateTime ();
Mais essayez de vous en tenir à java.time
tout au long de votre application.
? Conseils professionnels
- Spécifiez toujours explicitement les fuseaux horaires lorsqu'ils traitent des événements du monde réel.
- Utilisez
Instant
pour les horodatages (par exemple, journalisation, stockage de base de données). - Pour les événements récurrents ou la logique du calendrier (par exemple, "premier lundi du mois"), considérez les bibliothèques comme Threeten-Extra ou Joda-Time (bien que Joda soit maintenant en mode de maintenance).
Fondamentalement, travailler avec des calendriers à Java est propre et sûr si vous utilisez java.time
. Évitez l'ancienne classe Calendar
à moins que vous ne conservez un code hérité. Concentrez-vous sur les outils LocalDate
, LocalDateTime
, ZonedDateTime
et Formatting - ils couvrent la plupart des cas d'utilisation du monde réel.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Stock Market GPT
Recherche d'investissement basée sur l'IA pour des décisions plus intelligentes

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comprendre les composants de base JCA tels que MessagediGest, Cipher, KeyGenerator, SecureRandom, Signature, Keystore, etc., qui mettent en œuvre des algorithmes via le mécanisme du fournisseur; 2. Utilisez des algorithmes et des paramètres forts tels que SHA-256 / SHA-512, AES (clé 256 bits, mode GCM), RSA (2048 bits ou supérieur) et SecureRandom; 3. Évitez les clés à code dur, utilisez des clés pour gérer les clés et générez des clés via des mots de passe dérivés en toute sécurité tels que PBKDF2; 4. Désactiver le mode ECB, adopter des modes de chiffrement d'authentification tels que GCM, utiliser des IV aléatoires uniques pour chaque cryptage et des caissiers clairs dans le temps

Facultatif est une classe de conteneurs introduite par Java 8. Il est utilisé pour indiquer clairement qu'une valeur peut être vide, évitant ainsi NullPointerException; 2. Il simplifie la vérification null nul en fournissant MAP, Orelse et d'autres méthodes, empêchant les méthodes de renvoyer les valeurs de rendement de la collection NULL et de normaliser; 3. Les meilleures pratiques incluent uniquement les valeurs de retour, d'éviter l'utilisation de champs ou de paramètres, de distinguer Orelse de Orelseget, et de ne pas appeler Get () directement; 4. Facultatif ne doit pas être abusé. Si les méthodes non vides n'ont pas besoin d'être enveloppées, les opérations facultatives inutiles doivent être évitées dans le flux; L'utilisation correcte de facultatif peut considérablement améliorer la sécurité et la lisibilité du code, mais elle nécessite de bonnes habitudes de programmation.

L'édition de signets de Chrome est simple et pratique. Les utilisateurs peuvent saisir le gestionnaire de signets via les touches de raccourci Ctrl Shift O (Windows) ou CMD Shift O (Mac), ou entrer dans le menu du navigateur; 1. Lors de la modification d'un seul signet, cliquez avec le bouton droit pour sélectionner "Modifier", modifiez le titre ou l'URL et cliquez sur "Terminer" pour enregistrer; 2. Lorsque vous organisez des signets par lots, vous pouvez maintenir CTRL (ou CMD) dans des signets à choix multiples dans le gestionnaire de signets, cliquez avec le bouton droit pour sélectionner "passer à" ou "Copier" le dossier cible; 3. Lors de l'exportation et de l'importation de signets, cliquez sur le bouton "Résoudre" pour sélectionner "Exporter Bookmark" pour enregistrer en tant que fichier HTML, puis restaurer la fonction "Importer Bookmark" si nécessaire.
![Les paramètres de jeu lol n'enregistrent pas après la fermeture [fixe]](https://img.php.cn/upload/article/001/431/639/175597664176545.jpg?x-oss-process=image/resize,m_fill,h_207,w_330)
IfleagueoflegendSettingSaren’ssaving, tryTheSesteps: 1.RunthegameasAdministrator.2.grantfullfolderpermissionstotheagueoflegendDirectory.3.Editandensuregame.cfgisn’Tread-only.4.DisableCloudsyNcfortaGamefolder.5.

Tout d'abord, CheckForPhysicsUesuesLikeeDebrisordAmageAndCleantheyBoardOrtestwithanExternalone; 2.TestertheenterkeyIndifferentAppstodetermineiftheissueIssoftware-spécifique; 3.restartyourcomputertoresolvetetemporaryglitches; 4.DisableStickykeys, Filterkeys, Ortogglek

AmemémoryleakinjavaoccurSwhenUnReachableObjectsarenotgarBageCollecyDuetolingingreFerences, seadtoExcessiveMemoryusageAndPotentialoutoutofMemoryError.ComMonCauseSeSestaticCollesectionreweting

WrapperclassesaSareUsedToconvertprimeTatatyTySIntoObjects, permettant à la consommation, permettant de surtout, fournissant des méthodes et de la supportation d'auto-oboxing / déborde.
![La demande n'a pas pu être effectuée en raison d'une erreur de périphérique d'E / S [6 solutions]](https://img.php.cn/upload/article/001/431/639/175592952217836.jpg?x-oss-process=image/resize,m_fill,h_207,w_330)
Ifyouencounterani / odeviceerror, tryTheSesteps: 1.restartyourcomputerAndDevice.2.replacetheusbcableorport.3.UpdateorreinstallthedevicedRiver.4.RunchkdsktofixDiskerror.5retide / satransferModeWeveNegener.6.SishignanwDredeterIndiskman de gestion.
