首页 > 代码库 > 生成ID模板:年月日时分秒+6位自增码
生成ID模板:年月日时分秒+6位自增码
因为生成订单ID、商品ID 或者什么什么ID的,不想用自增,又怕反复,于是就用 年与日时分秒 + 6位自增码 (共计20位长度)来当作ID
注意:假设你的ID是Long型。就要注意,Long的最大长度为19位,假设直接转的话会有问题,建议改为年月日时分秒+5位随机数
详细代码:
private static int sequence = 0; private static int length = 6; /** * YYYYMMDDHHMMSS+6位自增长码(20位) * @author shijing * 2015年6月29日下午1:25:23 * @return */ public static synchronized String getLocalTrmSeqNum() { sequence = sequence >= 999999 ? 1 : sequence + 1; String datetime = new SimpleDateFormat("yyyyMMddHHmmss") .format(new Date()); String s = Integer.toString(sequence); return datetime +addLeftZero(s, length); } /** * 左填0 * @author shijing * 2015年6月29日下午1:24:32 * @param s * @param length * @return */ public static String addLeftZero(String s, int length) { // StringBuilder sb=new StringBuilder(); int old = s.length(); if (length > old) { char[] c = new char[length]; char[] x = s.toCharArray(); if (x.length > length) { throw new IllegalArgumentException( "Numeric value is larger than intended length: " + s + " LEN " + length); } int lim = c.length - x.length; for (int i = 0; i < lim; i++) { c[i] = '0'; } System.arraycopy(x, 0, c, lim, x.length); return new String(c); } return s.substring(0, length); }
以下是測试的结果:
2015070816503700001
生成ID模板:年月日时分秒+6位自增码
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。