如何在android中使用特定日期获取当前日期名称?

问题描述:

我有日期字符串18-2-2012,从这里如何得到当天的名字,即今天是这样的“星期六”。明天的日期为19-2-2012,日期名称为“星期日”。如何在android中使用特定日期获取当前日期名称?

使用java日期格式。

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

您可以使用日历

  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

int dayOfWeek=bday.get(Calendar.DAY_OF_WEEK); // Returns 3, for Tuesday! 

更多的细节去这里.... http://mobile.tutsplus.com/tutorials/android/java_android_date-and-time/

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

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

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

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

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

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

在@维韦克的回答在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]; 

下面的方法将通过以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); 
    } 

希望它有帮助。