2011-01-11 15 views
5

これは恐らく疑問な質問ですが、私はJavaの日付関数を理解していません。ここではいくつかのコードは次のとおりです。Java SimpleDateFormatに関する簡単な質問

SimpleDateFormat sdf = new SimpleDateFormat("hh:mm"); 
Date s = sdf.parse(var); 
Calendar scal = java.util.GregorianCalendar.getInstance(); 
scal.setTime(s); 
Log.w("Time: ", Long.toString(s.getTime())); 

varは= "10:00" 私は "6480万" を取得する場合。

var = "11:00"の場合、「68400000」と表示されます。

var = "12:00"の場合は "28800000"になります。

var = "13:00"の場合、 "75600000"と表示されます。

var = "14:00"の場合、 "79200000"と表示されます。

var = "00:00"の場合は "28800000"になります。

12:00とは何ですか?なぜ、var = 12:00のときは00:00と同じ結果になりますか?他のすべての結果は正しいようです。私は明らかにJavaの日付関数を理解していないが、私はどこにこの説明を見つけることができないようだ。これは私のタイムスパン計算機を台無しにしています。

+0

あなたの質問は私には分かりません。どこにvarを設定していますか?あなたは非軍事時間であるhh:mmを使用しているので、おそらくそれがあなたが12のために00を得ている理由です。 – CoolBeans

答えて

12

あなたは24時間の時間を使いたい場合は、資本HH形式を使用する必要があります。

SimpleDateFormat sdf = new SimpleDateFormat("HH:mm"); 
0

私が代わりに「H」の「H」を使用している必要があります。 "h"はam/pm形式です。