Je demande simplement s'il est possible de reformater une date au format jj.MM.aaaa en aaaa-MM-jj afin que Watson Assistant puisse travailler avec?
Exemple: du 01.07.2020 au 2020-07-01
L'entrée n'est pas modifiable. Je suis reconnaissant pour les réponses données. J'ai réalisé que je n'avais pas posé la question correctement. Je reçois déjà une entrée d'un système backend que je ne peux pas changer. Je dois maintenant travailler avec lui dans le format donné ci-dessus. Comment puis-je changer le format directement dans Watson Assistant?
3 Réponses :
Vous pouvez l'utiliser:
SimpleDateFormat sdfNew = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat sdfOld = new SimpleDateFormat("dd.MM.yyyy"); String dateOld ="01.07.2020"; String dateNew = sdfNew.format(sdfOld.parse(dateOld));
Je vous recommande de passer de l'API date-heure java.util
obsolète et sujette aux erreurs à ensemble complet d'API date-heure moderne
Notez que jj.mm.aaaa
est un format incorrect pour la date car m
spécifie une minute. Pour spécifier un mois, vous devez utiliser M
.
Je vous recommande d'utiliser API de date-heure moderne et procédez comme suit:
2020-10-20
Résultat: strong>
import java.time.LocalDate; import java.time.format.DateTimeFormatter; public class Main { public static void main(final String[] args) { // Format of input date string DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd.MM.yyyy"); // A sample date string String strDate = "20.10.2020"; // Parse the sample date string to LocalDate LocalDate date = LocalDate.parse(strDate, formatter); System.out.println(date); } }
Notez que le format souhaité (c'est-à-dire aaaa-MM-jj
) est exactement le même format dans lequel LocalDate # toString renvoie une chaîne et par conséquent, vous n'ont pas besoin de spécifier un format pour la chaîne de sortie.
C'est tellement simple. Essayez ce code ci-dessous.
import java.time.LocalDate; import java.time.format.DateTimeFormatter; public class FormateDate { public static void main(String[] args) throws ParseException { String date_s = "01.07.2020"; LocalDateTime datetime = LocalDateTime.parse(date_s, DateTimeFormatter.ofPattern("dd.MM.yyyy")); String newDate = datetime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")); System.out.println(newDate); } }
Je vous recommande de passer de l'API date-heure java.util
obsolète et sujette aux erreurs à ensemble complet d'API date-heure moderne
Meilleurs. Deux améliorations sont encore nécessaires: (1) Vous devez utiliser LocalDate
au lieu de LocalDateTime
car il n'y a pas de partie de temps dans la chaîne donnée. (2) Vous n'avez pas besoin d'un formateur pour le format aaaa-MM-jj
lorsque vous avez une instance de LocalDate
. Faites simplement String newDate = localDateInstance.toString ()
. Vérifiez le lien dans ma réponse pour plus de détails.
Je viens d'ajouter cela parce que s'il voulait un autre format à l'avenir, il peut changer à tout moment :)
docs.oracle.com/javase/8/ docs / api / java / time / format /…