我要写一个程序,要实现以下功能对于主键由程序生成:20060825001
分析:年+月+日+序列号;
1,Date d=new Date();
如何可以得到它的年,月,日数字,JDK里的getYear(),getMonth(),getData()已经过时,可以用那个方法?有一个getTime();可以生成(星期,年,月,日,时间),但是是字符,如果转换很复杂,有什么好的方法吗?2,对于序列号每天要刷新一次,即清零,如何在程序里实现天数的判断?
  我直接查询数据库的最大ID数,取出最大值,把序列号断成时间+序列号,如:20060825+001,当然转换成数值型,时间与当前时间比较,相等则序列号加1,否则当前时间+001,时间相等,而序列号>999,引发一个异常:提示今天数据库停止服务,请明天再试!3,问题2里面的一个小问题:如何把INT转为String 型的,是 String dd=new String(111);可以吗?
我用的是 String dd=111+"";感觉太不专业了.

解决方案 »

  1.   

    String dd=111+"";是最方便的,也很专业。他会自动去调用一些方法来转换
      

  2.   

    String dd=111+""可以,也可以用
    String.valueOf(int i)
      

  3.   

    用SimpleDateFormat来提取年月日信息
      

  4.   

    1 Format format = new SimpleDateFormat("yyyyMMdd");
      Stirng key = format.format(d);
      key = String.format("%s%3d", key, serial);2 private volatile int serial;  TimerTask task = new TimerTask() {
        public void run() {
          serial = 0;
        }
      }
      Timer timer = new Timer();
      Date tomorrow = .....;
      long period = 24L * 60 * 60 * 1000;
      timer.scheduleAtFixedRate(task, tomorrow, period);3 String dd;
      dd = "" + 111;
      dd = 111 + "";
      dd = new String("111");
      dd = String.valueOf(111);
      dd = Integer.toString(111);
      

  5.   

    我要写一个程序,要实现以下功能对于主键由程序生成:20060825001
    分析:年+月+日+序列号;
    1,如何可以得到它的年,月,日数字,JDK里的getYear(),getMonth(),getData()已经过时,可以用那个方法?
      Date dd=new Date();
      String da=dd.toString();
      System.out.println(da);
    结果:Mon Sep 11 02:37:34 CST 2006,要转换的话可以重写getYear(),getMonth(),getDay()方法,但是很麻烦,我想知道你是怎么实现的?2,对于序列号每天要刷新一次,即清零,如何在程序里实现天数的判断?
      我直接查询数据库的最大ID数,取出最大值,把序列号断成时间+序列号,如:20060825+001,当然转换成数值型,时间与当前时间比较,相等则序列号加1,否则当前时间+001,时间相等,而序列号>999,引发一个异常:提示今天数据库停止服务,请明天再试!你认为这种方法好吗?
      

  6.   

    楼主,以下是获取年月日的代码:
    import java.util.*;
    class CalendarTest
    {
       public static void main(String[] args)
      {
        Calendar ca=Calendar.getInstance();
        System.out.println(ca.get(Calendar.YEAR));
        System.out.println(ca.get(Calendar.MONTH)+1);
        System.out.println(ca.get(Calendar.DAY_OF_MONTH));
      }
    }你可以运行看看效果
      

  7.   

    楼主,你的意思是说,ID每天只能添加999个吗?
    第3个问题,据说有一年的SCJD考试,有一道题目是问,最方便的将整型转化成String型的方法,答案便是你自己那个。
      

  8.   

    如果要职可以到999那就再加一个记录值,MaxValue,然后判断