我现在的取出来的是2006-04-02字符串,怎么能输出这个字符串的simpleDateFormat的格式

解决方案 »

  1.   

    没明白什么意思?2006-04-02不就是fomat中的一种吗
      

  2.   

    SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
    SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy年MM月dd日");
    Date d = sdf1.parse("2006-04-02");
    System.out.println(sdf2.format(d));
    你说的是不是这个意思, 要以任意形式输出"2006-04-02"?
      

  3.   

    我现在有一个字符串,怎么就知道它是yyyy-MM-dd型的
    要是20060402呢,2006/04/02呢
    怎么知道它是yyyyMMdd型的
      

  4.   

    你的意思我明白了, 就是说给了一个字符串, 然后从这个字符串中分析出模式. 我觉得你这种需求是很难实现的. 举个例子, 给了这样一个字符串"12181123", 你能告诉我它是"yyyyMMdd"还是"MMddyyyy"吗? 显然是不可能的, 这是表示1218年11月23日也行, 说是1123年12月18日也未尝不可.
      

  5.   

    感觉你好像要通过几个字符串来寻找适合它们的正则表达式,这个难度估计不会太低。一般的数据库都会提供datatime类型,你使用getTiemstamp()或者getDate()都会取出来,至于如何显示,就看你如何定义SimpleDateFormat了;如果使用了varchar类型存储,什么格式你一查数据库就知道了,另外问一句,对于字符串还有必要判断使用了哪种表达形式吗?
      

  6.   

    要是yyyy-MM-dd或是yyyy/MM/dd还可以分割出来,8个数字连起来的有点难度
      

  7.   

    同意hemiao_1993(冷血动物)
    除非有一定规律,否则分不出来
      

  8.   

    简单点想的话,楼主如果知道取出来会有那些格式可以一个一个去判断
    比如可能有yyyy-MM-dd ,或者yyyy/MM/dd ,或者yyyyMMdd 那么就把取出的时间看里面是不是有-,/,但这样做的前提是 yyyyMMdd顺序是固定的 如果可能 ddMMyyyy 那就要根据yyyy的限制来判断了