-1
votes

Obtenir la date sans temps en Java

Je veux obtenir une date sans temps, mais toujours échoué. Vous trouverez ci-dessous mes codes: xxx

la sortie: xxx

Quelqu'un sait pourquoi? Merci


6 commentaires

Parce que java.util.date représente un instant dans le temps. Vous devez utiliser le java.time API à la place, telle que localDate .


Du localdate.now () ?


Conseil général: N'utilisez pas java.util.date ni java.sql.date , java.util.calendar , et tous les éléments liés Des classes. Ignorez tous les conseils sur l'empilement ou Internet qui vous indique de les utiliser. Utilisez uniquement les classes java.time et ne tolérent que les classes ci-dessus dans le code hérité.


Ce que vous avez écrit devriez avoir minuit GMT. Je ne sais pas pourquoi cela convertirait à 8 heures du matin. Cela ne semble pas ajouter de droite.


@khelwood 00: 00T dans GMT accepte avec 08:00 Chine Temps standard, il s'agit probablement de ce que CST signifie dans ce cas. La question a également été postée de Nanjing, Chine. Ces D * RN Abréviations de fuseaux horaires ambiguës ...


@ Olev.v. Merci de résoudre le mystère.


4 Réponses :


3
votes

Vous pouvez utiliser java.time.localdate.now () pour obtenir juste la date.

Quoi qu'il en soit, votre cas ne fonctionne pas comme vous l'attendez parce que vous ne faites rien pour supprimer le temps de la date: vous êtes simplement "réprimant" cela, c'est pourquoi c'est zéro. Si vous souhaitez continuer de cette façon, vous pouvez toujours SUBSTRING IT (Substring the date.tostring () Bien sûr que je voulais dire).

J'espère que j'ai aidé.


0 commentaires

3
votes

java.util.date stats Javadoc:

La classe date représente un instant spécifique dans le temps, avec une précision milliseconde.

C'est pourquoi vous avez de la date avec le temps

Si vous voulez une date, vous pouvez utiliser: java.time.localdate.now () (Java 8+)


0 commentaires

4
votes

Il n'est pas recommandé d'utiliser java.util.date code> plus. Il a été appelé date code> mais ne contient pas nécessairement que les informations de date, mais des informations sur le temps.

Utilisez ceci: P>

DateTimeFormatter.ofPattern("dd.MM.yyyy");


2 commentaires

Toute différence notable entre utiliser DateTimeformatter.iso_date et et juste tostring () ?


@Glands je pense TOSTRING () donnera une sortie dans le format ISO-8601 UUUU-MM-DD , tandis que iso_date mettra un décalage si disponible. Sinon, il n'y a pas de différence évidente ou documentée que je pouvais trouver pour l'instant.



3
votes

Tout d'abord, arrêtez d'utiliser l'ancien java.util.date . La nouvelle API de date et d'heure Java 8 a de nombreuses meilleures classes pour toutes les opérations de date et d'heure.

the localDate classe fait exactement ce que vous voulez. La date actuelle peut être obtenue par localdate.now () .

Il dispose également de nombreuses installations pour ajouter et soustraire des jours, des mois, etc. et il prend en compte tous les cas spéciaux de calendrier pour vous.


0 commentaires