顯示具有 Joda-Time 標籤的文章。 顯示所有文章
顯示具有 Joda-Time 標籤的文章。 顯示所有文章

2014年2月9日 星期日

使用 Joda-Time 取得各時區的時間

話說前陣子研究 Joda-time 來取得各個時區的時間後,就把它應用在專案裡面。不過幾天專案發現出問題,讓我發現它的一個小小的問題。

問題的原因發生在把資料庫的時間轉換成我希望的時區,所以我寫了下面這個函數…
public Date getLocaleTime(Date date, String TimeZoneID) {
  DateTime time;
  if (date == null)
    time = new DateTime(DateTimeZone.forID(TimeZoneID));
  else 
    time = new DateTime(date, DateTimeZone.forID(TimeZoneID));
  return time.toLocalDateTime().toDate();
}

乍看之下沒有什麼問題,不過當選擇到某些特定的時區的時候就會出狀況,說 Joda-Time 不支援這個 TimeZone ID。

2014年1月5日 星期日

使用 Joda-Time 轉換成不同時區的時間

Java 原生的 Date 類別,是我一直沒搞明白的東西之一。總是認為它應該是一個集取得、設定時間方法大成的類別,卻奇怪於它的設定方法又少又有一部分不建議使用。而後來發現另一個叫  Calendar 的類別反而有著比較完整的方法,不懂原來的設定者希望開發人員如何使用它們。

後來在一次的技術討論中,聽到 Joda-Time 這個函數庫,說是讓人更方便操作時間資料,接手開發相關公用函數的過程,慢慢抓到它一部分的用法,記錄在這個地方。

查了一下網路資料,發現「Joda」這個字和星際大戰的「尤逹大師」是同一個字,不過作者說,這個專案裡的 J 應該發和 Java 裡的 J 一樣,也因為唸法不同,所以只是一個作來簡化 Java 程式開發的東西,沒有能夠揮舞下光劍的本領(笑)。