2012-02-18 81 views

回答

42

使用java日期格式。

SimpleDateFormat inFormat = new SimpleDateFormat("dd-MM-yyyy"); 
Date date = inFormat.parse(input); 
SimpleDateFormat outFormat = new SimpleDateFormat("EEEE"); 
String goal = outFormat.format(date); 
8

您可以使用日历

  Calendar calendar = Calendar.getInstance(); 

      calendar.setTime(date_your_want_to_know); 

      String[] days = new String[] { "SUNDAY", "MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY" } 

      String day = days[calendar.get(Calendar.DAY_OF_WEEK)]; 
+0

这样你永远不会看到SUNDAY ... – dit 2016-04-26 13:14:00

+1

String [] days = new String [] {“”,“SUNDAY”,“MONDAY”,“TUESDAY”,“WEDNESDAY”,“THURSDAY”,“FRIDAY” ,“SATURDAY”} – 2016-05-01 11:32:36

0

首先日期字符串转换为使用SimpleDateFormat日期。

然后从该日期开始Calendar实例。

最后,使用get(Calendar.DAY_OF_WEEK)Calendar中检索星期几。这会给你一个介于1到7之间的整数,代表一周中的某一天。你可以简单地将它映射到一个字符串数组来获得日子。

4

只需使用一个单一的代码行:

android.text.format.DateFormat.format("EEEE", date); 
+0

这是我认为最好的方法。这个问题的作者究竟是要求什么,而且是一条线。 – Forke 2016-11-15 18:10:21

0

在@维韦克的回答在calendar.get(Calendar.DAY_OF_WEEK)添加“-1”,因为它返回的数字从1到7,但字符串数组索引为0到6.

calendar.setTime(date_your_want_to_know); 

String[] days = new String[] { "SUNDAY", "MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY" } 

String day = days[calendar.get(Calendar.DAY_OF_WEEK)-1]; 
0

下面的方法将通过以String格式传递日期来返回日期。 如果发生异常,则返回null。

private String getDay(String date_in_string_format){   
     DateFormat df = DateFormat.getDateInstance(); 
     Date date; 
     try { 
      date = df.parse(date_in_string_format); 
     } catch (Exception e) { 
      Log.e("Error:","Exception " + e); 
      return null; 
     } 
     return new SimpleDateFormat("EEEE").format(date); 
    } 

希望它有帮助。

相关问题