android上两个字符串的日期

时间:2014-07-15 13:11:17

标签: java android date-parsing

我有一个日期的两个字符串(使用当前年份):

  1. 一天=“15”
  2. 一个月=“7”
  3. 根据这些数据,我希望这个格式的字符串日期为:Tuesday July 15

    这可能吗?

    我正在尝试使用此代码,但它不起作用:

     public void dateFormatMoth(String day, String month){
    
     Date date = null;
    
        String newDateStr="";
        String dateReceived="day/month";
    
        SimpleDateFormat fromUser = new SimpleDateFormat("dd/MM");
        SimpleDateFormat myFormat = new SimpleDateFormat("EEEE-MM-dd");
    
        try {
    
             reformattedStr = myFormat.format(fromUser.parse(dateReceived));
        } catch (ParseException e) {
            e.printStackTrace();
        }
    
       Log.d(LOG_TAG,"day formatted"+newDateStr);
    }
    

2 个答案:

答案 0 :(得分:1)

只需稍微更改myFormat即可实现此目的。 MM会给你一个月号,MMMM会给你全名:

public void dateFormatMonth(String day, String month) throws ParseException {
    SimpleDateFormat fromUser = new SimpleDateFormat("dd/MM");
    SimpleDateFormat myFormat = new SimpleDateFormat("EEEE MMMM dd", Locale.US);
    try {
        reformattedStr = myFormat.format(fromUser.parse(day + "/" + month));
    } catch (ParseException e) {
        e.printStackTrace();
    }
    Log.d(LOG_TAG,"day formatted"+newDateStr);
}

您可以在JavaDoc中了解有关不同格式的更多信息。

请注意,我明确指定了区域设置,以确保无论机器的区域设置如何都能获得所请求的输出。

答案 1 :(得分:0)

尝试:

    public static String format(String input_date, String input_format, String output_format) {

        SimpleDateFormat simple_date_input_format;
        SimpleDateFormat simple_date_output_format;
        simple_date_input_format = new SimpleDateFormat(input_format, Locale.US);
        simple_date_output_format = new SimpleDateFormat(output_format, Locale.US);

        try {
            Date input_date_formatted = simple_date_input_format.parse(input_date);
            output_date_formatted = simple_date_output_format.format(input_date_formatted);
        } catch (ParseException e) {
            output_date_formatted = null;
            e.printStackTrace();
        }
        return output_date_formatted;