Comment obtenir la date et l'heure actuelle correctement dans Joda-Time?

comment obtenir correctement la date et l'heure réelle dans L'heure Joda? J'entends par là le temps passé dans mon pays. J'ai lu des pages officielles et quelques tutoriels - il y a beaucoup de choses sur les Locales et les fuseaux horaires, mais je l'ai trouvé assez confus. Je n'ai pas trouvé d'exemple comment simplement obtenir.

J'en ai besoin pour deux choses:

1) pour obtenir le courant pour le post dans la discussion

2) pour obtenir l'heure actuelle que je vais "comparer" avec la date de naissance et calculer l'âge.

Comment puis - je régler L'heure actuelle lorsque J'ai UTC+1 (Prague-République tchèque)?

Merci

29
demandé sur mavis 2013-01-15 08:13:12

2 réponses

voici un pseudo Code pour Joda Time qui pourrait vous être utile.

import org.joda.time.*;
import org.joda.time.format.DateTimeFormat;
import org.joda.time.format.DateTimeFormatter;

public class JodaTimeExample {

    public static void main(String[] sm) {
        DateTimeFormatter dateFormat = DateTimeFormat
                .forPattern("G,C,Y,x,w,e,E,Y,D,M,d,a,K,h,H,k,m,s,S,z,Z");

        String dob = "2002-01-15";
        LocalTime localTime = new LocalTime();
        LocalDate localDate = new LocalDate();
        DateTime dateTime = new DateTime();
        LocalDateTime localDateTime = new LocalDateTime();
        DateTimeZone dateTimeZone = DateTimeZone.getDefault();

        System.out
                .println("dateFormatr : " + dateFormat.print(localDateTime));
        System.out.println("LocalTime : " + localTime.toString());
        System.out.println("localDate : " + localDate.toString());
        System.out.println("dateTime : " + dateTime.toString());
        System.out.println("localDateTime : " + localDateTime.toString());
        System.out.println("DateTimeZone : " + dateTimeZone.toString());
        System.out.println("Year Difference : "
                + Years.yearsBetween(DateTime.parse(dob), dateTime).getYears());
        System.out.println("Month Difference : "
                + Months.monthsBetween(DateTime.parse(dob), dateTime)
                        .getMonths());
    }
}

Lien pour DateTimeFormat formateur

Joda Time API

j'espère que cela vous aidera. Si vous avez toute question, laissez-moi savoir.

P. s.: Merci à Sumit Arora pour avoir donné la sortie.

dateFormatr : AD,20,2016,2016,26,2,Tue,2016,180,6,28,PM,8,8,20,20,25,20,2,‌​, 
LocalTime : 20:25:17.308 
localDate : 2016-06-28 
dateTime : 2016-06-28T20:25:18.872+05:30 
localDateTime : 2016-06-28T20:25:20.260 
DateTimeZone : Asia/Kolkata 
Year Difference : 14 
Month Difference : 173
41
répondu Smit 2016-09-02 19:32:00
LocalTime localTime = new LocalTime();
LocalDate localDate = new LocalDate();
DateTime dateTime = new DateTime();
LocalDateTime localDateTime = new LocalDateTime();  

n'importe lequel de ces contructeurs crée la date dans votre fuseau horaire, où votre fuseau horaire signifie fuseau horaire DateTimeZone.getDefault(); 151980920"

vous voulez comparer la date actuelle avec la date de naissance. Comment sauvegarder la date de dirth dans la base de données?

Si elle est avec UTC timezone, vous pouvez comparer avec dateTime dans UTC TZ

Years.yearsBetween(dateOfBirth, new DateTime(DateTimeZone.UTC));   

Si elle a Serveur TZ vous devez faire

Years.yearsBetween(dateOfBirth, new DateTime());  

Si elle a Serveur TZ vous devez faire

Years.yearsBetween(dateOfBirth, new DateTime(DateTimeZone.forID("ClientTZ")));  
5
répondu Ilya 2013-01-15 08:25:30