日付をフォーマットしている間にDST(Dayligt Saving Time)を無視する

私は現在の日付とxmlファイルの解析日を比較するこのアプリケーションを持っています:

Date timeDiff = new Date(date.getTime() - new Date().getTime());

問題は、変数timeDiffをsimpleDateFormatを介して文字列として出力し、夏時間が余分な時間を追加するために考慮されることです。これは私の出力を混乱させる。

SimpleDateFormatでDSTを無視させる方法はありますか?

ありがとう!

0

3 答え

ミリ秒単位で時間を取得するには、別の時間から1つの時間を引いています。 日付として書式設定しようとしてはいけません。それは数ミリ秒であり、日付ではありません。

あなたが期待している結果がはっきりしないのですが、現時点では基本的に間違った方向に向かっています。

3
追加された
もし、timeDiff.getTime()が4500000であれば、1h 15mを出力したい:new SimpleDateFormat( "H'h 'm'm'")。format(timeDiff);文字列としてmillisecondsを出力しようとしている。
追加された 著者 Richard,
@リチャード:私は通常、これ( joda-time.sf.net )のためにJoda Timeを使用することをお勧めしますしかしあなたのAndroidアプリにとってはちょっと大きいかもしれないかもしれません。数時間、分、秒のコードに分割した後、文字列の書式設定だけを考えたことがありますか?
追加された 著者 Jon Skeet,

なぜ時間を使用しないでください。 normalize()メソッドがありますこれは、DSTを無視するかどうかを示すブール値をとります。

1
追加された

みんな!おそらくこのソリューションでより良いでしょう:

public static String millisToString(long l){
        long h, m;
        h = l/3600000;
        m = (l % 3600000)/60000;
        if(h == 0){
            return m + "m";
        }else{
            return h + "h " + m + "m";
        }
    }
0
追加された