Domanda Risolto Errore Month perchè? :(

Stato
Discussione chiusa ad ulteriori risposte.

elcondor

Utente Bronze
28 Settembre 2020
48
13
3
24
Funziona tutto perchè mi da l'errore su ChronoUnit.MONTH , la setssa cosa su YEAR oppure WEEK?
Java:
package Esercizio;
import java.time.Instant;
import java.time.LocalDate;
import java.time.LocalTime;
import java.time.temporal.ChronoUnit;

public class Main {

    public static void main(String[] args) {
        
        System.out.println("Sono le: " + LocalTime.now());
        System.out.println("Data: " + LocalDate.now());
    

        Instant duemiladieci = Instant.parse("2010-01-01T00:00:00.00Z");
        Instant duemilaventi = Instant.parse("2020-01-01T00:00:00.00Z");
                
        long intervalloGiorni = DateUtils.getIntervallo(duemiladieci, duemilaventi, ChronoUnit.DAYS);
        System.out.println("dal primo gennaio 2010 al primo gennaio 2020 " + "sono passati " + intervalloGiorni + " giorni");

        final long tempoPassatoInMinuti = DateUtils.getTempoPassato(duemiladieci, ChronoUnit.MINUTES);
        System.out.println("Dal primo gennaio 2010 ad oggi sono passati " + tempoPassatoInMinuti + " minuti");

        final long tempoPassatoInSecondi = DateUtils.getTempoPassato(duemiladieci,  ChronoUnit.SECONDS);
        System.out.println("Dal primo gennaio 2010 ad oggi sono passati " + tempoPassatoInSecondi + " secondi");
        
        final long tempoPassatoInOre = DateUtils.getTempoPassato(duemiladieci, ChronoUnit.HOURS);
        System.out.println("Dal primo gennaio 2010 ad oggi sono passati " + tempoPassatoInOre + " ore");
        
        long tempoPassatoInMesi = DateUtils.getTempoPassato(duemiladieci, ChronoUnit.MONTHS);
        System.out.println("Dal primo gennaio 2010 ad oggi sono passati " + tempoPassatoInMesi + " Mesi");
    
    }

}
 
Devi indicare sempre l'errore che ottieni.

Comunque non vedo nessuna DateUtils, visto che è un package di Apache. L'errore è su questa riga, o sulla costante che hai indicato? Perchè secondo me è su questa riga...
 
Ultima modifica:
L'errore è sulla riga chronoUnit .MONTHS e mi dice unsopported month. DateUtils è la classe dove sono definiti i metodi getTempoPassato e getIntervallo.
Non funziona con month year e week. Mi dice unsupported... :(
 
A prima vista avevo pensato fosse di Apache, non ho fatto caso al metodo (la classe ha il medesimo nome).
Comunque riporta uno screen dell'errore (o incolla lo stack trace), così è più chiaro.
 
Bene, ecco l'errore.
Cattura.JPG
Cattura.JPG
 
Non puoi farci molto, è un'operazione non supportata. Bisognerebbe vedere il codice dentro ai metodi per capire esattamente cosa stai utilizzando.
Prova a dare uno sguardo anche a questo:

 
Si l'ho visto, il metodo è questo:
public static long getTempoPassato(Instant instant1, ChronoUnit chronoUnit) {

return getIntervallo(instant1, Instant.now(), chronoUnit);

}

}
 
Java:
LocalDateTime a = LocalDateTime.parse("2010-01-01T00:00:00.000");
LocalDateTime b = LocalDateTime.now();

System.out.println("Dal primo gennaio 2010 ad oggi sono passati " + ChronoUnit.SECONDS.between(a,b) + " secondi");
System.out.println("Dal primo gennaio 2010 ad oggi sono passati " + ChronoUnit.MINUTES.between(a,b) + " minuti");
System.out.println("Dal primo gennaio 2010 ad oggi sono passati " + ChronoUnit.HOURS.between(a,b) + " ore");
System.out.println("Dal primo gennaio 2010 ad oggi sono passati " + ChronoUnit.DAYS.between(a,b) + " giorni");
System.out.println("Dal primo gennaio 2010 ad oggi sono passati " + ChronoUnit.WEEKS.between(a,b) + " settimane");
System.out.println("Dal primo gennaio 2010 ad oggi sono passati " + ChronoUnit.MONTHS.between(a,b) + " mesi");
System.out.println("Dal primo gennaio 2010 ad oggi sono passati " + ChronoUnit.YEARS.between(a,b) + " anni");
 
Stato
Discussione chiusa ad ulteriori risposte.