Comment obtenir correctement la date et l'heure réelles dans Joda Time? Par correctement, je veux dire le temps dans mon pays. J'ai lu des pages officielles et quelques tutoriels - il y a beaucoup de choses sur les paramètres régionaux et les fuseaux horaires, mais j'ai trouvé cela assez déroutant. Je n'ai trouvé aucun exemple pour l'obtenir simplement.
J'en ai besoin pour deux choses:
Comment puis-je régler l'heure actuelle lorsque j'ai UTC + 1 (Prague - République tchèque)?
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 le formateur DateTimeFormat
J'espère que cela t'aidera. Si vous avez des questions, faites-le moi savoir.
P.S .: Merci à Sumit Arora d'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
LocalTime localTime = new LocalTime();
LocalDate localDate = new LocalDate();
DateTime dateTime = new DateTime();
LocalDateTime localDateTime = new LocalDateTime();
l'un de ces constructeurs crée la date dans votre fuseau horaire, où votre fuseau horaire signifie le fuseau horaire DateTimeZone.getDefault();
Vous voulez comparer la date actuelle avec la date de naissance. Comment enregistrez-vous la date de dirth dans la base de données?
Si c'est avec le fuseau horaire UTC, vous pouvez comparer avec dateTime en UTC TZ
Years.yearsBetween(dateOfBirth, new DateTime(DateTimeZone.UTC));
S'il a un serveur TZ, vous devriez le faire
Years.yearsBetween(dateOfBirth, new DateTime());
S'il a un serveur TZ, vous devriez le faire
Years.yearsBetween(dateOfBirth, new DateTime(DateTimeZone.forID("ClientTZ")));