2016-11-21 10 views
-2

たとえば、私はdatevalue = 1479709790を持っています。これはEpoch にあり、私はこのEpoch時間を日曜日、月曜日、または火曜日のような曜日のみに変換したいと考えています。日曜日の前に月曜日のように、上記の日は上になるでしょう。java、Epoch時間を週の曜日に変換する方法

あなたは(つまり、すべてがUTCであると仮定)タイムゾーンを考慮していません、のような単純なものでしたと仮定すると、
public String getDay(long day){ 
    this.day=day; 
    String dayOfWeeks; 
    long time=day*1000l; 

    int days = (int)((time/(1000*60*60*24))%7); 

    switch (days){ 
     case 1: 
      dayOfWeeks = "Sun"; 
      break; 
     case 2: 
      dayOfWeeks="Mon"; 
      break; 
     case 3: 
      dayOfWeeks = "Tue"; 
      break; 
     case 4: 
      dayOfWeeks="Wed"; 
      break; 
     case 5: 
      dayOfWeeks = "Thru"; 
      break; 
     case 6: 
      dayOfWeeks="Frid"; 
      break; 
     case 7: 
      dayOfWeeks = "Sat"; 
      break; 
     default: 
      dayOfWeeks="Sat"; 
    } 

    return dayOfWeeks; 
} 
+0

どのような結果が得られますか、何を試しましたか? –

+0

'Instant.ofEpochMilli(1479709790L * 1000L)'はあなたの日付が '2016-11-21T06:29:50Z'であると言います。曜日を取得するタイムゾーンは何ですか?タイムゾーン「オーストラリア/シドニー」では「月曜日」、タイムゾーン「アメリカ/アンカレッジ」では「日曜日」となります。 – Andreas

+0

'%7'を使うと、結果は0と6の間の数値になります。なぜ' switch'ステートメントに 'case 7'があるのですか?そして、もし曜日名が1つシフトされていれば、あなたは明らかに 'switch'を間違って作成しました。なぜ名前を正しい' case'に移してみませんか? – Andreas

答えて

2

:、中に何の結果を取得する必要がありますどのような規模、ということである何エポック

public static DayOfWeek getDayOfWeek(long epochSecond) { 
    return Instant.ofEpochSecond(epochSecond).atOffset(ZoneOffset.UTC).getDayOfWeek(); 
} 
関連する問題