现在我有从系统读出了一个字符串日期mydate我想把它变成日期型SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
try {
return simpleDateFormat.parse(mydate);
} catch (ParseException e) {
e.printStackTrace();
return null;
}这样写以后,日期如果是2008-4-5可以被转换成2008-04-05,但是从系统读出的日期格式不一定只是这种,如果是2008/04/05 这里就不能用这种(yyyy-MM-dd)格式了。系统是操作系统。不管系统是什么日期格式,输出的全是yyyy-MM-dd 大家有什么办法么

解决方案 »

  1.   

    SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd");
    System.out.println(f.format(Calendar.getInstance().getTime()));
      

  2.   

    那应该不能用simpleDateFormat.parse(mydate); 简单的处理一下就行!
    可以先用正则表达式先讲字符串中的非数字符号替换成“-”,然后利用下面代码转换成日期型
    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); 
    try { 
     return simpleDateFormat.parse(mydate); 
    } catch (ParseException e) { 
      e.printStackTrace(); 
      return null; 
      

  3.   


    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); 
    try { 
    //如果mydate中有 "/" 就会替换成第("yyyy-MM-dd")类型 如果本身就是 ("yyyy-MM-dd") 就不会发生替换
    //PS: 通过测试
    mydate=mydate.replaceAll("/","-");
    return simpleDateFormat.parse(mydate); 
    } catch (ParseException e) { 
    e.printStackTrace(); 
    return null; 

      

  4.   

    SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd"); 
    System.out.println(f.format(Calendar.getInstance().getTime()));
      

  5.   

    如果你想要时间显示为"/"分隔,那你改成
    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy/MM/dd"); 
    就好了,其实这个格式也就只是一个帮助用户理解时间段形式。
    例如windows就可以用"/","-","."这些分隔符,只要是用户能个知道时间就行了。
    何必拘泥于格式呢?
      

  6.   

    判断,然后全部转成:yyyy-MM-dd这种格式,那就不存在问题了!
      

  7.   


    String.format("%1$tF %1$tT", System.currentTimeMillis());//一直都是你想要得字符串格式
      

  8.   

    不知道mydate的格式确认麻烦楼主试试看用DateFormat.parse(mydate) 
      

  9.   

    能解释一下("%1$tF %1$tT", 吗? 谢谢了
      

  10.   

    以后日期处理都用Joda Time 吧。真的非常好用的一套API。
      

  11.   

    1.5以上jdk,Formatter类,里面有详细例子
      

  12.   

    写一个循环,不停的试,commons中就是这么做的,呵呵
      

  13.   

    这是我回答两个日期差问题时写的。从中你不难看出这套API可以直接把字符串转成日期型。
    别再自己写这些方法了。给你推荐一个现成的包--Joda Time。 网站是:http://joda-time.sourceforge.net/。 
    下载的网址为:http://sourceforge.net/project/showfiles.php?group_id=97367&package_id=104212 
    目前最新的版本是1.5.2 
    下载完之后你可以很Easy的这么写:                   DateTime date1 = new DateTime("2008-4-27"); 
    DateTime date2 = new DateTime("2008-5-1"); 
    Days days = Days.daysBetween(date1, date2); 
    System.out.println(days.getDays()); 
    一但你使用上这个日期包,“一旦拥有,别无所求”了
      

  14.   

    mydate=mydate.replaceAll("/","-"); 
    字符串替换...