2016-02-28 238 views
0

我想要兩個日期之間的區別,即從gsp形式和當前日期。從gsp日期格式格式爲1994-05-19 00:00:00.0,而我在當前日期使用new Date()時,它的格式爲Sun Feb 28 07:42:13 NPT 2016。我怎麼能得到這些日期之間的差異。我的代碼是:Grails - 兩個日期之間的差異

int getAge(Date dateOfBirth){ 
    DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd") 

    print(">>>><><><><<<<<<<<<<<<><><><><><><><><") 
    print("date of birth"); 
    print(dateOfBirth) 
    print(">>>><><><><<<<<<<<<<<<><><><><><><><><") 
    print("current date") 
    print(new Date()) 
    print(">>>><><><><<<<<<<<<<<<><><><><><><><><") 

    Date currentDate = new Date() 
    def cd = dateFormat.format(currentDate) 

    String date = dateFormat.format(dateOfBirth) 

    return 5; 
} 

我使用的Java 7和Grails的2.3.5

+0

實際上有兩個問題在這裏:解析日期和計算的差異。第二個問題得到了回答,但不是第一個問題。在比較日期之前,您需要能夠將它們解析爲Date對象,而不是Strings。下面是解析它們的方法:'Date date1 = Date.parse('yyyy-MM-dd HH:mm:ss.S','1994-05-19 00:00:00.0')'和Date date2 = Date。解析('EEE MMM dd HH:mm:ss zzz yyyy','Sun Feb 28 07:42:13 NPT 2016')' –

回答

1

您可以通過簡單地減去兩個日期的Unix時間戳值獲得兩個日期之間的差值:

date1.getTime() - date2.getTime() 

這會給你以毫秒爲單位的差異,你可以把它轉換成你想要的任何時間單位。結果的符號指示哪個日期最先出現,即如果是負數,date1發生在date2之前。

編輯:我看到你的方法是尋找年齡,使用相同的邏輯,你可以使用:date1.getYear() - date2.getYear()

+0

謝謝你,爲我工作.... – Madan