成功使用 Mac VPS 完成 iPhone app 放進實機測試過程

iPhone UDID 可以從 iTunes 取到

Provisioning Profile 也可以拉進 iTunes 放進 iPhone

app 可以 Build and Archive 起來,然後產生 .ipa 檔案拉進 iTunes

所以整個開發與實機測試過程都可以在不接觸 Mac 實體機的情況下完成

只是直接將 iPhone 連上 Mac 還是有好處,像是可以用 Xcode 做 profiling

所以還在考慮之後要怎麼做

最常見的 Java 計算日期差方法是有問題的

最常見的 Java 計算日期差方法,就是取毫秒相減除以一天的毫秒數,但這方法其實有問題

之前在做日期相關的東西時,剛好看到這篇

Java – calculate the difference between two dates

他指出當2個日期包含日光節約時間的起始時,算出來的天數會少一天

他的範例程式用的是倫敦時區,不過 台灣也實施過日光節約時間

程式稍微改一下,就會發現台灣時區也有同樣問題

TimeZone.setDefault(TimeZone.getTimeZone("Asia/Taipei"));

Date d3 = new Date("03/31/1974 12:00:00");
Date d4 = new Date("04/01/1974 12:00:00");

結果:

133934400000
134017200000
82800000
Manual – Days between: 31-三月-1974 and 01-四月-1974 is: 0
Calendar – Days between: 31-三月-1974 and 01-四月-1974 is: 1

避免這個問題的方法

  1. Java 7 似乎會提供 JSR 310 裡面應該會有可計算日期差的 API
  2. 使用 Joda-Time library

使用 Joda-Time 範例如下:

DateTime d1 = new DateTime(1974, 3, 31, 12, 0, 0, 0);
DateTime d2 = new DateTime(1974, 4, 1, 12, 0, 0, 0);
Days d = Days.daysBetween(d1, d2);
System.out.println(d.getDays());