首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

java simpledateformat 日期格式的疑义

2012-08-09 
java simpledateformat 日期格式的疑问现Excel表中有如下格式数据2004-04-12004-4-0104-4-1需要转化为标准

java simpledateformat 日期格式的疑问
现Excel表中有如下格式数据
2004-04-1
2004-4-01
04-4-1

需要转化为标准的 date类型 2004-04-01

如何操作?

[解决办法]
2004-04-1
2004-4-01
04-4-1

字符串不统一,估计的重新格式化一些你的字符串成为统一的格式先

Java code
import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;public class Test10 {    /**     * @param args     * @author sunstar     * @date 2012-7-24 上午10:18:11     */    public static void main(String[] args) {        String[] arrs = {"2004-04-1", "2004-4-01", "04-4-1"} ;        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd" ) ;        Date[] date = new Date[arrs.length] ;        for (int i = 0; i < arrs.length; i++){            arrs[i] = formatYear(arrs[i],4, "20") ;            try {                date[i] = sdf.parse(arrs[i]) ;            } catch (ParseException e) {                e.printStackTrace();            }                    }        for (int i = 0; i < arrs.length; i++){            System.out.println(arrs[i] + " -- " + sdf.format(date[i])) ;        }    }        /**     *      * @param dataStr 原来的日期字符串,可能为2004-4-1 ,也可能是04-4-1     * @param len  年份的长度     * @param str  如果年份长度不够则在前面加上的字符串,比如1、年份:04 ,长度为4, str ="20" ,则变为2004     * 2、如果需要将2004-04-01格式化为04-04-01则 长度为2 即可     * @return     * @author sunstar     * @date 2012-7-24 上午10:27:57     */    public static String formatYear(String dataStr, int len, String str){                String[] arrs = dataStr.split("-") ;        if (arrs[0].length() <len){            arrs[0] = str + arrs[0] ;        }else if(arrs[0].length() > len){            arrs[0] = arrs[0].substring(arrs[0].length() -len) ;        }        return arrs[0] + "-" + arrs[1]+ "-" + arrs[2];    }}
[解决办法]
这种date,应该还是字符串,不是标准Date
Java code
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");        String s1 = "2004-04-1";        String s2 = "2004-4-01";        System.out.println(sdf.format(sdf.parse(s1)));        System.out.println(sdf.format(sdf.parse(s2))); 

热点排行