0

私は、インドのユーザーが使用する製品のバージョンに取り組んでおり、インドから作業しています (GMT+5:30)。私たちのサーバーは米国にあります。開始日と終了日を持ついくつかのスキームが適用されます (例: 8 月 1 日 00:00:00 から 8 月 31 日 11:59:59 まで有効である必要があります)。http://www.ruddwire.com/handy-code/date-to-millisecond-calculators/を使用しています

// dateStr is what user enters on UI like 1/08/2013 format = dd/MM/yyyy
public static long getUTCDateWithFormat(String dateStr, String format) throws ParseException {
    SimpleDateFormat sdf = new SimpleDateFormat(format);
    Date date = sdf.parse(dateStr);
    return date.getTime();
}

したがって、開始時間を考慮して、ローカルホストから実行すると、8 月 1 日に結果 = 1375295400000 が得られました。これは、2013 年 8 月 1 日木曜日 00:00:00 GMT+0530 (インド標準時) を意味します。(したがって、実行時にシステム時間をこの値と比較する必要があるため、UTC から 5 時間 30 分ミリ秒を差し引く必要があることを理解しています。)

サーバー (米国) から実行すると同様の UTC が保存されることが期待されていましたが、1375336800000 が保存されました。これは、2013 年 8 月 1 日木曜日 11:30:00 GMT+0530 (インド標準時) を意味するため、UTC 時間が異なり、11:30 時間の欠陥があります。 5:30 時間の欠陥に加えて。

サーバーで次のコードを使用しませんでしたが、同様の結果が期待されます-

Calendar calendar = Calendar.getInstance();
String[] arr = dateStr.split("/");
calendar.set(new Integer(arr[2]), new Integer(arr[0]), new Integer(
        arr[1]));
return calendar.getTime();

この問題を解決するのを手伝ってください。また、実行時に比較を行う際に new Date() を使用する必要があるので、どうすればよいでしょうか?

4

2 に答える 2