java,如何将大纪元时间仅转换为星期几
java, how to convert Epoch time to day of weeks only
例如我有 datevalue=1479709790;这是在大纪元
我想将这个纪元时间转换为一周中的唯一一天,例如星期日、星期一或星期二。下面的一天会比星期天之前的星期一更早一天。
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;
}
假设您不考虑时区(即假设一切都是 UTC),它可以像这样简单:
public static DayOfWeek getDayOfWeek(long epochSecond) {
return Instant.ofEpochSecond(epochSecond).atOffset(ZoneOffset.UTC).getDayOfWeek();
}
以上方法(ofEpochSecond(epochSecond).atOffset(ZoneOffset.UTC)
)不适用于 API 小于 26 !
所以你可以使用下面的代码
public static String getdayOfWeek(long epochinSecond) {
Calendar cal = Calendar.getInstance();
cal.setTimeInMillis(epochinSecond * 1000l);
cal.setTimeZone(TimeZone.getTimeZone("UTC"));
int i = cal.get(Calendar.DAY_OF_WEEK);
String dayOfWeek;
switch (i) {
case 1:
dayOfWeek = "Sunday";
break;
case 2:
dayOfWeek = "Monday";
break;
case 3:
dayOfWeek = "Tuesady";
break;
case 4:
dayOfWeek = "Wednesday";
break;
case 5:
dayOfWeek = "Thursday";
break;
case 6:
dayOfWeek = "Friday";
break;
case 7:
dayOfWeek = "Saturday";
break;
default:
dayOfWeek = null;
}
return dayOfWeek;
}
例如我有 datevalue=1479709790;这是在大纪元 我想将这个纪元时间转换为一周中的唯一一天,例如星期日、星期一或星期二。下面的一天会比星期天之前的星期一更早一天。
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;
}
假设您不考虑时区(即假设一切都是 UTC),它可以像这样简单:
public static DayOfWeek getDayOfWeek(long epochSecond) {
return Instant.ofEpochSecond(epochSecond).atOffset(ZoneOffset.UTC).getDayOfWeek();
}
以上方法(ofEpochSecond(epochSecond).atOffset(ZoneOffset.UTC)
)不适用于 API 小于 26 !
所以你可以使用下面的代码
public static String getdayOfWeek(long epochinSecond) {
Calendar cal = Calendar.getInstance();
cal.setTimeInMillis(epochinSecond * 1000l);
cal.setTimeZone(TimeZone.getTimeZone("UTC"));
int i = cal.get(Calendar.DAY_OF_WEEK);
String dayOfWeek;
switch (i) {
case 1:
dayOfWeek = "Sunday";
break;
case 2:
dayOfWeek = "Monday";
break;
case 3:
dayOfWeek = "Tuesady";
break;
case 4:
dayOfWeek = "Wednesday";
break;
case 5:
dayOfWeek = "Thursday";
break;
case 6:
dayOfWeek = "Friday";
break;
case 7:
dayOfWeek = "Saturday";
break;
default:
dayOfWeek = null;
}
return dayOfWeek;
}