将字符串转换为日期和时间,并提取年,月,日,星期,小时和分钟

时间:2014-04-22 01:03:49

标签: android

我正在检索我的Android应用程序的JSON对象。他们有两个字段:datetime。 在布局上,我需要从这两个字段中提取以下字符串:

  
      
  1. 星期几(例如星期一)
  2.   
  3. 每月的某一天(例如21日)
  4.   
  5. 月(例如四月)
  6.   
  7. 年(例如2014年)
  8.   
  9. 小时(例如17)
  10.   
  11. 分钟(例如35)
  12.   

字段为date="2014-04-21"time="17:35:00"

我怎么能这样做?

2 个答案:

答案 0 :(得分:6)

有一个类SimpleDateFormat可以解析你指定的日期和时间

以下是您的问题的示例:


    String string = "2014-04-21 17:35:00";
    Calendar calender = Calendar.getInstance();
    calender.setTime(new SimpleDateFormat("yyyy-MM-d k:m:s").parse(string));
    System.out.println("Day of week: " + calender.get(Calendar.DAY_OF_WEEK)); //2 is monday
    System.out.println("Day of the month: " + calender.get(Calendar.DAY_OF_MONTH));
    System.out.println("Month: " + calender.get(Calendar.MONTH)); //0 is january 3 is april
    System.out.println("Year: " + calender.get(Calendar.YEAR));
    System.out.println("Hour: " + calender.get(Calendar.HOUR_OF_DAY));
    System.out.println("Minutes: " + calender.get(Calendar.MINUTE));

字符串是json的字符串结果

答案 1 :(得分:1)

我认为日期和时间是由空格分隔的。 使用此:

    String dateString = "2014-09-13 17:35:00";
    String part[] = dateString.split(" ");
    DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
    Date formattedDate;
    try {
        formattedDate = (Date) format.parse(part[0]);


        Calendar cal = Calendar.getInstance();
        cal.setTime(formattedDate);

        int month = cal.get(Calendar.MONTH); // Month
        int day = cal.get(Calendar.DAY_OF_MONTH);// Day of the month
        int year = cal.get(Calendar.YEAR);
        int day_of_week = cal.get(Calendar.DAY_OF_WEEK);
        String time[] = part[1].split(":");
        // Your desired values are in time[0], time[1], time[2]


    } catch (ParseException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }