java时间相关

关于时间戳的理解

时间戳是long类型
时间戳默认显示为毫秒数
1秒= 1000毫秒

获取当前时间的方法:

long now = System.currentTimeMillis();

字符串Date互转

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String format = sdf.format(date);
Date parse = sdf.parse(dateString);

Date获取时间戳

long date = parse.getTime();

格式化

提油单管理继续进行,昨天实体的问题结果是放弃多表查询,改成提货,发货单位名称。
在完成时,主要2个新问题,一个是校验三个参数,使用ajax请求,同时传入参数,在后台校验返回结果即可;
第二个问题是提油单编号的问题,编号是拼接的字符串,效果是每增加一个提油单,编号是今天的日期+001,今天的日期+002,而到第二天要从新的001开始;
本来以为要定义常量来递增,其实实现是非常简单的,通过当前日期查询对象,有N个对象就是00N,这样就可以解决当前日期查询,而第二天查询有从新的00N开始,这里有个bug事当用户删除数据后,会出现重复排序,所以改变service,给查询进行排序,拿到最大的00N,然后再最大的基础上递增;新的问题是当超过10个后,怎么正确显示010;或者说怎么正确的显示000问题,百度一下的结果是

DecimalFormat format = new DecimalFormat("000");// 定义一种输出格式为000

下面代码


    //编码值
    public String OrderNumber(String data) throws Exception{
        
        String orderNumber = null;
        try {
            //去掉日期中-
            String newData = data.replace("-", "");
            //数据库查询
            List oilTiTrains = oilTiTrainService.getOilTiTrainsByData(data);
            if (oilTiTrains.size() > 0) {
            OilTiTrain oilTiTrain = oilTiTrains.get(0);
            String number =  oilTiTrain.getOrdersNumber();  
            //获取个数count
            int count = Integer.parseInt(number.substring(8))+1;
            //格式化
            DecimalFormat format = new DecimalFormat("000");// 定义一种输出格式为000
            //拼接字符串
            orderNumber = newData + format.format(count);
            }else {
            orderNumber = newData + "001";
            }
            
        } catch (Exception e) {
            e.printStackTrace();
        }
        //返回正确的值
        return  orderNumber;
        
    }
        
    }

你可能感兴趣的:(java时间相关)