2016-08-16 4 views
-1

この質問は尋ねられましたが、解決策はJava 7でサポートされていないか、外部ライブラリ(これは単純なユースケースのために別のライブラリを必要としないため避けることを望んでいます)が必要です。Androidの現在のUTC時刻とUTCの日付を比較する方法は?

しかし、基本的に私は自分のDBから来る2つの日付があり、日付はUTCです。私はUTCでデバイスの現在の時刻を取得し、現在の時刻が開始日と終了日の間であるかどうかをチェックしたいと思います。現在、私はDBの日付をUTCのように電話機に取得していますが、現在の時刻はデバイスのタイムゾーンに入っていて、比較は間違っています。

+3

可能な複製(http://stackoverflow.com/questions/308683/ [どのように私はJavaでUTCまたはGMTでの現在の日付と時刻を取得することができますか?]現在の日付と時刻の取得方法 –

+1

コンテキストのコードを提供しないと、これは難しい問題になります。あなたがStrings、Java Datesを扱っているのかどうかはわかりません。これは純粋なJavaの質問のようですが、Androidタグはおそらく必要ありません。 – EJK

答えて

1

JavaはUTCに現地時間を取得する

を提供している彼らが、より安定しているので、それらのほとんどは、サードパーティ製のlibが使用している理由:

TimeZone.setDefault(TimeZone.getTimeZone("UTC")); 
Calendar cal_Two = Calendar.getInstance(TimeZone.getTimeZone("UTC")); 
System.out.println(cal_Two.getTime()); 

出力:土1月25日11: 15時29分UTC日付に文字列を変換する2014

String startDateString = "06/27/2007"; 
DateFormat df = new SimpleDateFormat("MM/dd/yyyy"); 
Date startDate; 
try { 
    startDate = df.parse(startDateString); 
    String newDateString = df.format(startDate); 
    System.out.println(newDateString); 
} catch (ParseException e) { 
    e.printStackTrace(); 
} 

の日付の差を検索:の

{ 
     Date dt2 = new DateAndTime().getCurrentDateTime(); 

     long diff = dt2.getTime() - dt1.getTime(); 
     long diffSeconds = diff/1000 % 60; 
     long diffMinutes = diff/(60 * 1000) % 60; 
     long diffHours = diff/(60 * 60 * 1000); 
     int diffInDays = (int) ((dt2.getTime() - dt1.getTime())/(1000 * 60 * 60 * 24)); 

     if (diffInDays > 1) { 
      System.err.println("Difference in number of days (2) : " + diffInDays); 
      return false; 
     } else if (diffHours > 24) { 

      System.err.println(">24"); 
      return false; 
     } else if ((diffHours == 24) && (diffMinutes >= 1)) { 
      System.err.println("minutes"); 
      return false; 
     } 
     return true; 
} 
+0

ありがとうございます!最後のコードスニペットは、私が必要としたものと全く同じでした。 –

+1

@JaySykoようこそ。次に具体的なことをしようとすると、私たちはより速くより速くあなたを助けることができます! :) 良い一日を! – Smit

関連する問題