1
votes

Comment reformater une date au format jj.MM.aaaa dans Watson Assistant?

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 :


1
votes

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));


1 commentaires

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



2
votes

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.


0 commentaires

1
votes

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);
            }
        
        }


3 commentaires

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 :)