2014-12-09 75 views
1

我試圖將AD的Account Expires屬性轉換爲日期。這是我如何嘗試去做:從活動目錄中獲取帳戶到期日期

long adDate = Long.parseLong(adDateStr); 
    long milliseconds = (adDate/10000) - DIFF_NET_JAVA_FOR_DATES; 
    Date date = new Date(milliseconds); 
    DateFormat mydate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
    return(mydate.format(date)); 

問題是它是增加1天的實際賬戶到期日。 例如如果賬戶到期日期爲08/01/2106,則上述代碼爲09/01/2016。 任何人都可以幫助我嗎?

+0

你可以直接轉換爲新的日期()直接而不操作? – UmeshR 2014-12-09 12:23:00

+0

不需要第二行。 – sid 2014-12-09 12:38:05

+1

爲什麼這個問題被標記爲'talend'?它根本與TOS無關;我建議編輯 – 2014-12-09 13:00:36

回答

1

只是一些猜測。

  1. 是DIFF_NET_JAVA_FOR_DATES = 11644473600000L + 24 * 60 * 60 * 1000的值?

  2. accountExpires和Date中的時間是UTC時間(非本地)。
    這是原因嗎?

+0

accountExpires始終是UTC - 請參閱[MSDN](http://msdn.microsoft.com/en-us/library/ms675098%28v=vs.85%29.aspx)。可能是一些時區轉移和四捨五入的奇怪。 – 2014-12-11 17:25:35