如何在Joda-Time中获得正确的当前日期和时间



如何在Joda time中获得正确的实际日期和时间?我说的适当是指在我的国家的时间。我阅读了官方页面和一些教程——有很多关于地区和时区的东西,但我发现它相当令人困惑。我没有找到如何简单地获得它的任何示例。

我需要它做两件事:

  1. 查看当前讨论的帖子,
  2. 要获得当前时间,我将与出生日期"比较"并计算年龄。

如何设置当前时间,当我有UTC+1(布拉格-捷克共和国)?

这是Joda Time的伪代码,可能对您有用。

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

DateTimeFormat格式化器链接

Joda Time API

我希望这对你有帮助。如果你有任何问题,请告诉我。

注::感谢Sumit Arora给出的输出。

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

这个构造函数在您的时区创建日期,其中您的时区表示时区DateTimeZone.getDefault();

要比较当前日期和出生日期。如何在数据库中保存死亡日期?
如果使用UTC时区,可以与UTC TZ

中的dateTime进行比较。
Years.yearsBetween(dateOfBirth, new DateTime(DateTimeZone.UTC));   

如果它有Server TZ,你应该做

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

如果它有Server TZ,你应该做

Years.yearsBetween(dateOfBirth, new DateTime(DateTimeZone.forID("ClientTZ")));  

相关内容

  • 没有找到相关文章

最新更新