博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JAVA 订单号生成类
阅读量:4136 次
发布时间:2019-05-25

本文共 1694 字,大约阅读时间需要 5 分钟。

import java.text.SimpleDateFormat;import java.util.Date;import java.util.Random;/** * 生成订单号类 */public class OrderUtil {    // 使用单例模式,不允许直接创建实例    private OrderUtil() {}    // 创建一个空实例对象,类需要用的时候才赋值    private static OrderUtil g = null;    // 单例模式--懒汉模式    public static synchronized OrderUtil getInstance() {        if (g == null) {            g = new OrderUtil();        }        return g;    }    // 全局自增数    private static int count = 0;    // 每毫秒秒最多生成多少订单(最好是像9999这种准备进位的值)    private static final int total = 9999;    // 格式化的时间字符串    private static final SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");    private static final SimpleDateFormat sdf2 = new SimpleDateFormat("yyyyMMddHHmmss");    // 获取当前时间年月日时分秒毫秒字符串    private static String getNowDateStr() {        return sdf.format(new Date());    }    // 记录上一次的时间,用来判断是否需要递增全局数    private static String now = null;    /*     * 生成一个订单号 - 支付平台使用     */    public synchronized String GenerateOrder() {        String datastr = getNowDateStr();        if (datastr.equals(now)) {            count++;// 自增        } else {            count = 1;            now = datastr;        }        int countInteger = String.valueOf(total).length() - String.valueOf(count).length();// 算补位        String bu = "";// 补字符串        for (int i = 0; i < countInteger; i++) {            bu += "0";        }        bu += String.valueOf(count);        if (count >= total) {            count = 0;        }        return datastr + bu;    }    public static void main(String[] args) {            Random ran = new Random();            int num = ran.nextInt(999);            String str = String.format("%03d", num);            System.out.println(str);    }}

 

转载地址:http://rixvi.baihongyu.com/

你可能感兴趣的文章
python 变量作用域问题(经典坑)
查看>>
pytorch
查看>>
pytorch(三)
查看>>
ubuntu相关
查看>>
C++ 调用json
查看>>
nano中设置脚本开机自启动
查看>>
动态库调动态库
查看>>
Kubernetes集群搭建之CNI-Flanneld部署篇
查看>>
k8s web终端连接工具
查看>>
手绘VS码绘(一):静态图绘制(码绘使用P5.js)
查看>>
手绘VS码绘(二):动态图绘制(码绘使用Processing)
查看>>
基于P5.js的“绘画系统”
查看>>
《达芬奇的人生密码》观后感
查看>>
论文翻译:《一个包容性设计的具体例子:聋人导向可访问性》
查看>>
基于“分形”编写的交互应用
查看>>
《融入动画技术的交互应用》主题博文推荐
查看>>
链睿和家乐福合作推出下一代零售业隐私保护技术
查看>>
Unifrax宣布新建SiFAB™生产线
查看>>
艾默生纪念谷轮™在空调和制冷领域的百年创新成就
查看>>
NEXO代币持有者获得20,428,359.89美元股息
查看>>