Util1--常用小工具

package com.xinli.broadband2.self.util;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Random;

public class Util {

/**
* ---xiaowu
*
* -----------------------------------------
* 一般常用的格式为下面这些:
* y 年/M 月/d 日/h 时 在上午或下午 (1~12)/H 时 在一天中 (0~23)
* m 分/s 秒/S 毫秒
* -------------------------------------------
*
* 根据自己设定的格式获得当前时间
* @param format :时间格式 如:yyyy-MM-dd HH:mm:ss
* @return 自己设置的时间格式
*/
public static String getCurrentDateFormat(String format)
{
SimpleDateFormat df = new SimpleDateFormat(format);
return df.format(new Date());
}


/**
* --xiaowu
*
* 将给定的时间根据自己设定的格式转换后返回一个时间格式的字符串
* @param date
* @param format
* @return
*/
public static String getDateFormat(Date date,String format)
{
SimpleDateFormat df = new SimpleDateFormat(format);
return df.format(date);
}

/**
* --xiaowu 对于位数较大的随机数来讲,此方法明显要快很多(相比与getRandomString方法)
*
* 随机数的个数(有可能会重复,数位越多重复的可能性就越小,
* 如果位数很大,就采用随机数加随机数的方式构造更大的随机数)
* @param numLength :
* @return 指定个数的随机数(位数不够,补0后截断)
*/


public static String getRandNumByLength(int numLength)
{

String randNum="";
if(numLength<0) return "000000000";
if(numLength>9)
{
int i= numLength/9;
int j= numLength%9;
for (int t=0;t<i;t++)
{
Random rand=new Random();
String randDate="000000000"+rand.nextInt(1000000000);
randNum+=randDate.substring(randDate.length()-9, randDate.length());
}
if(j>0)
{
Random rand=new Random();
String randDate="000000000"+rand.nextInt((int)(Math.pow(10,j)));
randNum+=randDate.substring(randDate.length()-j, randDate.length());
}
return randNum;
}
else
{
Random rand=new Random();
String randDate="000000000"+rand.nextInt((int)(Math.pow(10,numLength)));
//System.out.println(randDate);
randNum=randDate.substring(randDate.length()-numLength, randDate.length());
}

return randNum;
}

/**
* --xiaowu
*
* 获取num(最好大于14位,若小于14位,此方法退化为随机数的生成)位流水号(要求不重复)
*
* 当前时间的纳秒数+n位随机数(n=要求流水号的位数-当前时间纳秒数的位数)
* 当前时间的纳秒数几乎不会重复,若再加上随机数重复的几率就更小了。
* @param num:流水号的位数
* @return
*/
public static String getSerialNumber(int num)
{
String currentTime=System.nanoTime()+"";
if(num<currentTime.length()) return currentTime.substring(currentTime.length()-num,currentTime.length());
return currentTime+getRandNumByLength(num-currentTime.length());
}



/**
* ----xiaowu
*
* 随机数的生成
* @param nRandomCount 随机数的位数
* @param isNumber ---true:随机数全为数字;false:随机数为数字字母混编;
* @return
*/
public static String getRandomString(int nRandomCount, boolean isNumber) {
char[] a = null;

if (isNumber) {
a = new char[10];
for (int i = 48, j = 0; i <= 57; i++, j++) {
a[j] = (char) i;
}
} else {
// ASCII 48~57, String 0~9;
// ASCII 65~90, String A-Z;
// ASCII 97~122,String a-z;
a = new char[62];
for (int i = 48, j = 0; i <= 122; i++) {
if ((i > 57 && i < 65) || (i > 90 && i < 97)) {
continue;
} else {
a[j] = (char) i;
j++;
}
}
}

String strRand = "";
int LengthOfRandom = a.length;
Random random = new Random();
for (int i = 0; i < nRandomCount; i++) {
int nRand = random.nextInt(LengthOfRandom);
strRand += a[nRand];
}
return strRand;
}


public static void main(String []args)
{

}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值