我尝试了下面的代码,但它给了我两天前一周的日期名称。
DatePicker picker;
int date = picker.DayOfMonth;
int month = (picker.Month + 1);//month is 0 based
int year = picker.Year;
SimpleDateFormat simpledateformat = new SimpleDateFormat("EEE");
Date dt = new Date(year, month, date);
答案 0 :(得分:3)
首先使用SimpleDateFormat
使用SimpleDateFormat simpleDateFormat = new SimpleDateFormat("EEEE");
获取星期中的日期名称
EEEE
- >周中的日期名称
示例代码
SimpleDateFormat inFormat = new SimpleDateFormat("dd-MM-yyyy");
try {
Date myDate = inFormat.parse(date+"-"+month+"-"+year);
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("EEEE");
String dayName=simpleDateFormat.format(myDate);
} catch (ParseException e) {
e.printStackTrace();
}
答案 1 :(得分:1)
SimpleDateFormat dateFormat = new SimpleDateFormat("EEE", Locale.US);
String asWeek = dateFormat.format(dt);
答案 2 :(得分:0)
DateTimeFormatter dayOfWeekFormatter
= DateTimeFormatter.ofPattern("EEE", Locale.ENGLISH);
LocalDate date = LocalDate.of(
picker.getYear(), picker.getMonth(), picker.getDayOfMonth());
System.out.println(date.format(dayOfWeekFormatter));
采摘2018-04-09此印刷
周一
我正在使用并推荐现代Java日期和时间API java.time
。 Date
类已过时,您使用的是不推荐使用的构造函数。它被弃用了,因为它跨时区不可靠,所以你不应该这样做。 SimpleDateFormat
不仅过时,而且也是出了名的麻烦。我建议你完全避免这些课程。现代API可以更好地使用。
除了使用已弃用的Date
构造函数和过时的类之外,你还有两个错误:
Date
的月份是基于0的(不是DatePicker
的月份),所以你需要减去1,而不是加1(或者它们都是0基于? )。Date
构造函数的年份是“基于1900”。当这个类在1990年代被设计时,这似乎是一个好主意:你可以指定95来获得1995年。当你将2018年传递给构造函数时,你会得到3918年。那是对的。 : - (是的,java.time
适用于较旧和较新的Android设备。它只需要至少Java 6 。
org.threeten.bp
导入日期和时间类。java.time
。java.time
。java.time
向Java 6和7的后端(JST-310的ThreeTen)。答案 3 :(得分:0)
Calendar calendar = Calendar.getInstance();
DateFormat date4= new SimpleDateFormat("EEEE", Locale.getDefault());
String localTime4 = date4.format(calendar.getTime());
简单方法 只需使用