日期:2014-05-20  浏览次数:20523 次

想得到一个样式201111080001
想得到一个样式201111080001 ,像这样的一个样式。
今天的日期(年月日)+一个数(格式XXXX)

比如传过来数字是12.
那面以今天的日期。要得到的字符串是201111080012.
注意的是前八位是今天的日期。后四位是数字,不足的位数以0填充。

我想要2种方式,一种是java方式解决。
还有一种是oracle的sql方式解决。

------解决方案--------------------
java方式代码
Java code

public class StringFormatDemo {
    public static String format(int number){
        Date date=new Date();
        DateFormat df=new SimpleDateFormat("yyyyMMdd");
        String s1=df.format(date);
        NumberFormat nf=new DecimalFormat("0000");
        String s2=nf.format(number);

        return s1+s2;
    }

    public static void main(String[] args) {
        System.out.println(format(1));
    }
}

------解决方案--------------------
have a try
Java code
int id = 12;
String s = String.format("%tF%04d", new Date(), id).replaceAll("-", "");
System.out.println(s);

------解决方案--------------------
orcale
SQL code
select to_char(sysdate, 'YYYYMMDD') | to_char(id, '0000') from dual

------解决方案--------------------
select replace(to_char(sysdate, 'YYYYMMDD') || to_char(1, '0000'),' ','') from dual