martedì 16 gennaio 2018

Esercizi di conversione di date fra String, Date e long

Esercizio: convertire una data da String a Long e viceversa.

                SimpleDateFormat sdf=new SimpleDateFormat("dd/MM/yyyy");
                Date d=new Date();

                try {
                    d=sdf.parse(strDate);
                    lngDate=d.getTime();
                    System.out.println(lngDate);
                } catch (ParseException e) {
                    e.printStackTrace();
                }
Risultato:
01-16 11:35:46.214 3424-3424/? I/System.out: -262656000000
Ora facciamo l'esercizio inverso che servirà anche da controprova.
Questo non lo ricordo e devo andare a ricercarmi la procedura.
Ecco:
                Date d2=new Date(lngDate);
                String strDate=sdf.format(d);
                System.out.println(strDate);
Avevo già una variabile d di tipo Date contenente la data in questione, postavi per mezzo del metodo sdf.parse applicato a una stringa, ma ho voluto fare la procedura completa partendo dalla variabile di tipo long.

Risultato:
01-16 11:44:23.711 4219-4219/? I/System.out: -262656000000
01-16 11:44:23.712 4219-4219/? I/System.out: 05/09/1961
Perfetto.
Quindi per mezzo di SimpleDateFormat si può convertire una stringa in Date e poi da questa ricavare un long, e si può convertire un Date ricavato da un long in una stringa.


Ripeto l'esercizio con altre date.


                SimpleDateFormat sdf=new SimpleDateFormat("dd/MM/yyyy");

                String strDate="13/6/1962";
                Date d=new Date();
                try {
                    d=sdf.parse(strDate);
                    lngDate=d.getTime();
                    System.out.println(lngDate);
                } catch (ParseException e) {
                    e.printStackTrace();
                }

                d.setTime(lngDate);
                String risultato=sdf.format(d);
                System.out.println(risultato);



            }
01-16 12:30:20.823 6671-6671/? I/System.out: -238377600000
01-16 12:30:20.823 6671-6671/? I/System.out: 13/06/1962

Con la data odierna:
                Date data=new Date();
                SimpleDateFormat sdf=new SimpleDateFormat("dd/MM/yyyy");
                String strDate=sdf.format(data.getTime());
                System.out.println(strDate);
                System.out.println(data.getTime());
01-16 12:35:17.616 7005-7005/? I/System.out: 16/01/2018
01-16 12:35:17.616 7005-7005/? I/System.out: 1516106117615
Convertire in Date la data odierna espressa in stringa

                SimpleDateFormat sdf=new SimpleDateFormat("dd/MM/yyyy");

                String strDate="16/1/2018";
                Date data=new Date();

                try {
                    data=sdf.parse(strDate);
                    System.out.println(data);
                } catch (ParseException e) {
                    e.printStackTrace();
                }
                SimpleDateFormat sdf=new SimpleDateFormat("dd/MM/yyyy");

                String strDate="16/1/2018";
                Date data=new Date();

                try {
                    data=sdf.parse(strDate);
                    System.out.println(data);
                } catch (ParseException e) {
                    e.printStackTrace();
                }
01-16 12:41:37.704 7379-7379/? I/System.out: Tue Jan 16 00:00:00 GMT+00:00 2018