有一日期,格式为(MM-DD-YYYY),请问如何分别获取各字段值?

解决方案 »

  1.   

    硬编码 :
     toString()获取字符串 ,用字符串函数截取各段即可:
      

  2.   

    首先得到 这个date类型
    如果不是(MM-DD-YYYY)类型就用SimpleDateFormat转一下
     Calendar xx = Calendar.getInstance();
     xx.setTime(你得到是日期);
     xx.get(Calendar.YEAR)
     xx.get(Calendar.MONTH)
    xx.get(Calendar.DATE)
      

  3.   

    calender c=calender.getInstance();
    c.setTime(日期);
    c.get(Calender.year);
    c.get(Calender.month);
    c.get(Calender.date);
      

  4.   

    java里面应该有很多种方法可以做到,最基础的是把它当一个数组,一位一位的拆出来
      

  5.   

    Calendar c = Calendar.getInstance();
    SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
    sdf.format(c.getTime());
    c.get(Calender.YEAR); 
    c.get(Calender.MONTH); 
    c.get(Calender.DAY_OF_MONTH); 
      

  6.   

    1. 字符分析器,API Please!
    2. 不知道java中有没有spit()方法
      

  7.   

    fdfdfd
      

  8.   

    1.String.split("-")
    2.String.indexOf("-")
    3.Calendar 
      

  9.   

    假如日期为date;
    int len1=date.indexOf("-") 
    int len2=date.indexOf("-",len1)
    int datelen=date.length
    然后用
    String.substring("") 
      

  10.   

    很多方法,用subString()可以取出来,也可以用split()把它分割到一个数组中,Calendar类中也有方法直接可以拿出来.
      

  11.   

    //方法一
    String strDate="10-19-2007";
    String[] arrDate=strDate.split("-");
    if(arrDate!=null && arrDate.length>2){
    System.out.println("MM="+arrDate[0]);
    System.out.println("DD="+arrDate[1]);
    System.out.println("yyyy="+arrDate[2]);
    }

    //方法二
    java.util.Calendar ca=java.util.Calendar.getInstance();
    java.text.SimpleDateFormat sdf=new java.text.SimpleDateFormat("MM-dd-yyyy");//注意month要大写
    ca.setTime(sdf.parse("10-19-2007"));
    int year=ca.get(java.util.Calendar.YEAR); 
    int mon=ca.get(java.util.Calendar.MONTH)+1; 
    int day=ca.get(java.util.Calendar.DAY_OF_MONTH); 
    System.out.println("MM="+mon);
    System.out.println("DD="+day);
    System.out.println("yyyy="+year);
      

  12.   

    16楼的为什么
    ca.setTime(sdf.parse("10-19-2007")); 
    编译不过去呢?
    我是新手,多多指教。
      

  13.   

    第一次在这里发贴求助,就得到了这么多的热心人的帮助,在这里真是谢谢大家了:)我试过
    ca.setTime(sdf.parse("10-19-2007"));  
    加入try/catch块就可以了.
      

  14.   

    呵呵,学习了前辈们的贴子,受益匪浅.在这里我再总结一下.
    方法一public class DateFormat1 { public static void main(String[] args) {
    String strData=new String("10-19-2007");
    String[] arrData=strData.split("-");
    if(arrData!=null&&arrData.length>2)
    System.out.println("Month= "+arrData[0]);
    System.out.println("Day=   "+arrData[1]);
    System.out.println("Year=  "+arrData[2]);
    }
    }方法二import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Calendar;
    public class DateFormat2 { public static void main(String[] args) {
    Calendar ca=Calendar.getInstance();//获得此类型的一个通用的对象,及方法返回
                                       //一个 Calendar 对象
    SimpleDateFormat sdf=new SimpleDateFormat("MM-dd-yyyy");//用户定义日期格式
    /*
     * 字母  日期或时间元素          表示       示例  
     * y     年                     Year      1996; 96
     * M     年中的月份             Month     July; Jul; 07
     * D     年中的天数             Number    189;365
     * d     月份中的天数           Number    10;31
     * H    一天中的小时数(0-23)  Number    0  
     * k    一天中的小时数 (1-24) Number    24  
     * K  am/pm 中的小时数(0-11) Number     0  
     * h  am/pm 中的小时数(1-12) Number     12  
     * m  小时中的分钟数            Number     30  
     * s  分钟中的秒数              Number     55  
                     *
     */
    try {
    ca.setTime(sdf.parse("10-19-2007"));//使用给定的 Date 设置此 Calendar 的时间
    } catch (ParseException e) {
    // TODO 自动生成 catch 块
    e.printStackTrace();
    }
    int year=ca.get(Calendar.YEAR);//获取年
    int mon=ca.get(Calendar.MONTH);//获取月
    int day=ca.get(Calendar.DAY_OF_MONTH);//获取月中的天

    System.out.println("Month= "+mon);
    System.out.println("Day=   "+day);
    System.out.println("Year=  "+year);
    }
    }方法三import java.util.StringTokenizer;public class DateFormat3 { public static void main(String[] args) {
    //Create a string and string tokenizer
    String sData=new String("10-19-2007");
    StringTokenizer stData=new StringTokenizer(sData,"-");
    System.out.println("Month= "+stData.nextToken());
    System.out.println("Day=   "+stData.nextToken());
    System.out.println("Year=  "+stData.nextToken());
    }
    }
      

  15.   

    //方法一 
    String strDate="10-19-2007"; 
    String[] arrDate=strDate.split("-"); 
    if(arrDate!=null && arrDate.length >2){ 
    System.out.println("MM="+arrDate[0]); 
    System.out.println("DD="+arrDate[1]); 
    System.out.println("yyyy="+arrDate[2]); 
    } //方法二 
    java.util.Calendar ca=java.util.Calendar.getInstance(); 
    java.text.SimpleDateFormat sdf=new java.text.SimpleDateFormat("MM-dd-yyyy");//注意month要大写 
    ca.setTime(sdf.parse("10-19-2007")); 
    int year=ca.get(java.util.Calendar.YEAR);  
    int mon=ca.get(java.util.Calendar.MONTH)+1;  
    int day=ca.get(java.util.Calendar.DAY_OF_MONTH);  
    System.out.println("MM="+mon); 
    System.out.println("DD="+day); 
    System.out.println("yyyy="+year);
      

  16.   

    string 的split方法最简单!!
      

  17.   

    Calendar c = Calendar.getInstance(); 
    SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd"); 
    sdf.format(c.getTime()); 
    c.get(Calender.YEAR);  
    c.get(Calender.MONTH);  
    c.get(Calender.DAY_OF_MONTH);  
      

  18.   

    首先得到 这个date类型 
    如果不是(MM-DD-YYYY)类型就用SimpleDateFormat转一下 
     Calendar xx = Calendar.getInstance(); 
     xx.setTime(你得到是日期); 
     xx.get(Calendar.YEAR) 
     xx.get(Calendar.MONTH) 
    xx.get(Calendar.DATE)
      

  19.   

    已经说明是日子了。
    直接用
    getDate (返回值1-31)
    getMonth (返回值0-11)
    getYear (返回值减去1900的年数)这些方法已经不是java推荐的方法了。使用Calendar的方法比较好。
      

  20.   

    知道格式的话,最单的就是使用 substring 截取字符串,若是还要生成日期型数的话就使用 Calendar 类,通过 SimpleDateFormat 解析一下。Calendar 的使用楼上的各位已经说得很详细了。
      

  21.   

    感觉用 Calendar 虽然稍微麻烦点,但是比split 好。容错能力好一点。
      

  22.   

    buff.substring(开始位,结束位) 取出.
      

  23.   

    都说的这么复杂,按说就直接是先转成字符串(toString()),然后再用substring()完事.
    不过还是可以学习一点.
      

  24.   

    这种题真不应该考,毕竟这种问题查API可以解决的