Java生成随机数工具类,进制之间的转换工具类,获取指定时间,时间格式转换工具类

痛定思痛。 2022-07-16 14:59 231阅读 0赞

废话不多说,贡献一下code

1.编号生成工具

  1. import org.apache.commons.lang3.StringUtils;
  2. import java.math.BigInteger;
  3. import java.text.SimpleDateFormat;
  4. import java.util.Date;
  5. import java.util.Random;
  6. /** * 编号生成工具 */
  7. @SuppressWarnings("Duplicates")
  8. public abstract class CodeBuilder {
  9. /** * 生成新的流水编号 * * @return 20位字符串 */
  10. public static final String newTxCode() {
  11. // 年月日时分秒毫秒(15位)
  12. String time = new SimpleDateFormat("yyMMddHHmmssSSS").format(new Date());
  13. StringBuilder builder = new StringBuilder(time);
  14. Random random = new Random();
  15. // 随机数(5位)
  16. for (int i = 0; i < 5; i++) {
  17. int nextInt = random.nextInt(10);
  18. builder.append(nextInt);
  19. }
  20. return builder.toString();
  21. }
  22. public static final String genNextRadixCode(String precode) throws Exception {
  23. if (StringUtils.isBlank(precode)) {
  24. return "01";
  25. }
  26. int n=Integer.parseUnsignedInt(precode, 36);
  27. n++;
  28. return ten2radix(n,36).length()==1?"0"+ten2radix(n,36):ten2radix(n,36);
  29. }
  30. public static void main(String[] args) {
  31. try {
  32. System.out.println(genNextRadixCode("ZX"));
  33. } catch (Exception e) {
  34. e.printStackTrace();
  35. }
  36. }
  37. /** * baseString 递归调用 * * @param num 十进制数 * @param base 要转换成的进制数 */
  38. public static String ten2radix(int num, int base) {
  39. String str = "", digit = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
  40. if (num == 0) {
  41. return "";
  42. } else {
  43. str = ten2radix(num / base, base);
  44. return str + digit.charAt(num % base);
  45. }
  46. }
  47. /** * baseString 递归调用 * * @param num 十进制数 * @param base 要转换成的进制数 */
  48. public static String ten2radix(BigInteger num, int base) {
  49. String str = "", digit = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
  50. if (num.shortValue() == 0) {
  51. return "";
  52. } else {
  53. BigInteger valueOf = BigInteger.valueOf(base);
  54. str = ten2radix(num.divide(valueOf), base);
  55. return str + digit.charAt(num.mod(valueOf).shortValue());
  56. }
  57. }
  58. //随机生成指定长度的代码,包含数字
  59. public static final String generateRandomNumber(int length) {
  60. String allChar = "0123456789";
  61. StringBuffer sb = new StringBuffer();
  62. Random random = new Random();
  63. for (int i = 0; i < length; i++) {
  64. sb.append(allChar.charAt(random.nextInt(allChar.length())));
  65. }
  66. return sb.toString();
  67. }
  68. }

2.日期工具

  1. import org.apache.commons.lang3.StringUtils;
  2. import org.slf4j.Logger;
  3. import org.slf4j.LoggerFactory;
  4. import java.text.DateFormat;
  5. import java.text.ParseException;
  6. import java.text.SimpleDateFormat;
  7. import java.util.Calendar;
  8. import java.util.Date;
  9. import java.util.TimeZone;
  10. import java.util.regex.Pattern;
  11. public class DateUtils {
  12. private static Logger logger = LoggerFactory.getLogger(DateUtils.class);
  13. private static final String DATE_FORMAT = "yyyy-MM-dd";
  14. private static final String DATE_TIME_FORMAT_1 = "yyyy-MM-dd'T'HH:mm:ss";
  15. public static final String DATE_TIME_FORMAT_2 = "yyyy-MM-dd HH:mm:ss";
  16. public static final String DATE_TIME_FORMAT_3 = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'";
  17. public static final String DATE_TIME_FORMAT_4 = "MMddHHmmssSSS";
  18. private static final Pattern DATE_PATTERN = Pattern.compile("^\\d{4}-\\d{2}-\\d{2}$");
  19. private static final Pattern DATE_TIME_PATTERN_1 = Pattern.compile("^\\d{4}-\\d{2}-\\d{2}[T]\\d{2}:\\d{2}:\\d{2}$");
  20. private static final Pattern DATE_TIME_PATTERN_2 = Pattern.compile("^\\d{4}-\\d{2}-\\d{2}\\s\\d{2}:\\d{2}:\\d{2}$");
  21. public static Date addDays(Date start, int addDay) {
  22. Date date = getDateBegin(start);
  23. Calendar cs = Calendar.getInstance();
  24. cs.setTime(date);
  25. cs.set(Calendar.DAY_OF_MONTH, cs.get(Calendar.DAY_OF_MONTH) + addDay);//让日期加1
  26. return cs.getTime();
  27. }
  28. public static Date parse(String dateString) {
  29. Date date = null;
  30. if (!StringUtils.isBlank(dateString)) {
  31. try {
  32. if (DATE_PATTERN.matcher(dateString).find()) {
  33. date = new SimpleDateFormat(DATE_FORMAT).parse(dateString);
  34. } else if (DATE_TIME_PATTERN_1.matcher(dateString).find()) {
  35. date = new SimpleDateFormat(DATE_TIME_FORMAT_1).parse(dateString);
  36. } else if (DATE_TIME_PATTERN_2.matcher(dateString).find()) {
  37. date = new SimpleDateFormat(DATE_TIME_FORMAT_2).parse(dateString);
  38. }
  39. } catch (ParseException e) {
  40. logger.debug("Exception: {}", e);
  41. }
  42. }
  43. return date;
  44. }
  45. /** * 将日期字符串转换成指定格式的date * * @param 日期字符串 * @param 日期格式 * @return */
  46. public static Date formatStr(String str, String formatStr) {
  47. Date date = null;
  48. if (str != null) {
  49. DateFormat sdf = new SimpleDateFormat(formatStr);
  50. try {
  51. if (formatStr.equals(DATE_TIME_FORMAT_3)) {
  52. sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
  53. }
  54. date = sdf.parse(str);
  55. } catch (ParseException e) {
  56. e.printStackTrace();
  57. }
  58. }
  59. return date;
  60. }
  61. /** * 将日期转换成指定格式字符串 * * @param date * @param str * @return */
  62. public static String formatDate(Date date, String str) {
  63. SimpleDateFormat sdf = new SimpleDateFormat(str);
  64. return sdf.format(date);
  65. }
  66. /** * 获取月日时分秒时间戳字符串 * * @return */
  67. public static String getTimeString() {
  68. Date now = new Date();
  69. DateFormat sdf = new SimpleDateFormat(DATE_TIME_FORMAT_4);
  70. return sdf.format(now);
  71. }
  72. public static Date getDateBegin(Date date) {
  73. if (date == null) {
  74. date = new Date();
  75. }
  76. Calendar calendar = Calendar.getInstance();
  77. calendar.setTime(date);
  78. calendar.set(Calendar.HOUR_OF_DAY, 0);
  79. calendar.set(Calendar.MINUTE, 0);
  80. calendar.set(Calendar.SECOND, 0);
  81. calendar.set(Calendar.MILLISECOND, 0);
  82. return calendar.getTime();
  83. }
  84. public static Date getDateEnd(Date date) {
  85. if (date == null) {
  86. date = new Date();
  87. }
  88. Calendar calendar = Calendar.getInstance();
  89. calendar.setTime(date);
  90. calendar.set(Calendar.HOUR_OF_DAY, 23);
  91. calendar.set(Calendar.MINUTE, 59);
  92. calendar.set(Calendar.SECOND, 59);
  93. calendar.set(Calendar.MILLISECOND, 999);
  94. return calendar.getTime();
  95. }
  96. }

3.时间工具

  1. import java.util.Calendar;
  2. import java.util.Date;
  3. public class RemindDateUtils {
  4. /** * 获得本周的第一天,周一 * * @return */
  5. public static Date getCurrentWeekDayStartTime() {
  6. Calendar c = Calendar.getInstance();
  7. int day_of_week = c.get(Calendar.DAY_OF_WEEK) - 1;
  8. if (day_of_week == 0) {
  9. day_of_week = 7;
  10. }
  11. c.add(Calendar.DATE, -day_of_week + 1);
  12. c.set(Calendar.HOUR_OF_DAY, 0);
  13. c.set(Calendar.MINUTE, 0);
  14. c.set(Calendar.SECOND, 0);
  15. return c.getTime();
  16. }
  17. /** * 获得本周的最后一天,周日 * * @return */
  18. public static Date getCurrentWeekDayEndTime() {
  19. Calendar c = Calendar.getInstance();
  20. int weekday = c.get(Calendar.DAY_OF_WEEK);
  21. c.add(Calendar.DATE, 8 - weekday);
  22. c.set(Calendar.HOUR_OF_DAY, 23);
  23. c.set(Calendar.MINUTE, 59);
  24. c.set(Calendar.SECOND, 59);
  25. return c.getTime();
  26. }
  27. /** * 获得本天的开始时间,即2012-01-01 00:00:00 * * @return */
  28. public static Date getCurrentDayStartTime() {
  29. Calendar c = Calendar.getInstance();
  30. c.set(Calendar.HOUR_OF_DAY, 0);
  31. c.set(Calendar.MINUTE, 0);
  32. c.set(Calendar.SECOND, 0);
  33. return c.getTime();
  34. }
  35. /** * 获得本天的结束时间,即2012-01-01 23:59:59 * * @return */
  36. public static Date getCurrentDayEndTime() {
  37. Calendar c = Calendar.getInstance();
  38. c.set(Calendar.HOUR_OF_DAY, 23);
  39. c.set(Calendar.MINUTE, 59);
  40. c.set(Calendar.SECOND, 59);
  41. return c.getTime();
  42. }
  43. /** * 获得本小时的开始时间,即2012-01-01 00:00:00 * * @return */
  44. public static Date getCurrentHourStartTime() {
  45. Calendar c = Calendar.getInstance();
  46. c.set(Calendar.MINUTE, 0);
  47. c.set(Calendar.SECOND, 0);
  48. return c.getTime();
  49. }
  50. /** * 获得本小时的结束时间,即2012-01-01 23:59:59 * * @return */
  51. public static Date getCurrentHourEndTime() {
  52. Calendar c = Calendar.getInstance();
  53. c.set(Calendar.MINUTE, 59);
  54. c.set(Calendar.SECOND, 59);
  55. return c.getTime();
  56. }
  57. /** * 获得本月的开始时间,即2012-01-01 00:00:00 * * @return */
  58. public static Date getCurrentMonthStartTime() {
  59. Calendar c = Calendar.getInstance();
  60. c.set(Calendar.DATE, 1);
  61. c.set(Calendar.HOUR_OF_DAY, 0);
  62. c.set(Calendar.MINUTE, 0);
  63. c.set(Calendar.SECOND, 0);
  64. return c.getTime();
  65. }
  66. /** * 当前月的结束时间,即2012-01-31 23:59:59 * * @return */
  67. public static Date getCurrentMonthEndTime() {
  68. Calendar c = Calendar.getInstance();
  69. c.set(Calendar.DATE, 1);
  70. c.add(Calendar.MONTH, 1);
  71. c.add(Calendar.DATE, -1);
  72. c.set(Calendar.HOUR_OF_DAY, 23);
  73. c.set(Calendar.MINUTE, 59);
  74. c.set(Calendar.SECOND, 59);
  75. return c.getTime();
  76. }
  77. /** * 当前年的开始时间,即2012-01-01 00:00:00 * * @return */
  78. public static Date getCurrentYearStartTime() {
  79. Calendar c = Calendar.getInstance();
  80. c.set(Calendar.MONTH, 0);
  81. c.set(Calendar.DATE, 1);
  82. c.set(Calendar.HOUR_OF_DAY, 0);
  83. c.set(Calendar.MINUTE, 0);
  84. c.set(Calendar.SECOND, 0);
  85. return c.getTime();
  86. }
  87. /** * 当前年的结束时间,即2012-12-31 23:59:59 * * @return */
  88. public static Date getCurrentYearEndTime() {
  89. Calendar c = Calendar.getInstance();
  90. c.set(Calendar.MONTH, 11);
  91. c.set(Calendar.DATE, 31);
  92. c.set(Calendar.HOUR_OF_DAY, 23);
  93. c.set(Calendar.MINUTE, 59);
  94. c.set(Calendar.SECOND, 59);
  95. return c.getTime();
  96. }
  97. /** * 当前季度的开始时间,即2012-01-1 00:00:00 * * @return */
  98. public static Date getCurrentQuarterStartTime() {
  99. Calendar c = Calendar.getInstance();
  100. int currentMonth = c.get(Calendar.MONTH) + 1;
  101. if (currentMonth >= 1 && currentMonth <= 3)
  102. c.set(Calendar.MONTH, 0);
  103. else if (currentMonth >= 4 && currentMonth <= 6)
  104. c.set(Calendar.MONTH, 3);
  105. else if (currentMonth >= 7 && currentMonth <= 9)
  106. c.set(Calendar.MONTH, 4);
  107. else if (currentMonth >= 10 && currentMonth <= 12)
  108. c.set(Calendar.MONTH, 9);
  109. c.set(Calendar.DATE, 1);
  110. c.set(Calendar.HOUR_OF_DAY, 0);
  111. c.set(Calendar.MINUTE, 0);
  112. c.set(Calendar.SECOND, 0);
  113. return c.getTime();
  114. }
  115. /** * 当前季度的结束时间,即2012-03-31 23:59:59 * * @return */
  116. public static Date getCurrentQuarterEndTime() {
  117. Calendar c = Calendar.getInstance();
  118. int currentMonth = c.get(Calendar.MONTH) + 1;
  119. if (currentMonth >= 1 && currentMonth <= 3) {
  120. c.set(Calendar.MONTH, 2);
  121. c.set(Calendar.DATE, 31);
  122. } else if (currentMonth >= 4 && currentMonth <= 6) {
  123. c.set(Calendar.MONTH, 5);
  124. c.set(Calendar.DATE, 30);
  125. } else if (currentMonth >= 7 && currentMonth <= 9) {
  126. c.set(Calendar.MONTH,8);
  127. c.set(Calendar.DATE, 30);
  128. } else if (currentMonth >= 10 && currentMonth <= 12) {
  129. c.set(Calendar.MONTH, 11);
  130. c.set(Calendar.DATE, 31);
  131. }
  132. c.set(Calendar.HOUR_OF_DAY, 23);
  133. c.set(Calendar.MINUTE, 59);
  134. c.set(Calendar.SECOND, 59);
  135. return c.getTime();
  136. }
  137. /** * 获取前/后半年的开始时间 * @return */
  138. public static Date getHalfYearStartTime(){
  139. Calendar c = Calendar.getInstance();
  140. int currentMonth = c.get(Calendar.MONTH) + 1;
  141. if (currentMonth >= 1 && currentMonth <= 6){
  142. c.set(Calendar.MONTH, 0);
  143. }else if (currentMonth >= 7 && currentMonth <= 12){
  144. c.set(Calendar.MONTH, 6);
  145. }
  146. c.set(Calendar.DATE, 1);
  147. c.set(Calendar.HOUR_OF_DAY, 0);
  148. c.set(Calendar.MINUTE, 0);
  149. c.set(Calendar.SECOND, 0);
  150. return c.getTime();
  151. }
  152. /** * 获取前/后半年的结束时间 * @return */
  153. public static Date getHalfYearEndTime(){
  154. Calendar c = Calendar.getInstance();
  155. int currentMonth = c.get(Calendar.MONTH) + 1;
  156. if (currentMonth >= 1 && currentMonth <= 6){
  157. c.set(Calendar.MONTH, 5);
  158. c.set(Calendar.DATE, 30);
  159. }else if (currentMonth >= 7 && currentMonth <= 12){
  160. c.set(Calendar.MONTH, 11);
  161. c.set(Calendar.DATE, 31);
  162. }
  163. c.set(Calendar.HOUR_OF_DAY, 23);
  164. c.set(Calendar.MINUTE, 59);
  165. c.set(Calendar.SECOND, 59);
  166. return c.getTime();
  167. }
  168. }

发表评论

表情:
评论列表 (有 0 条评论,231人围观)

还没有评论,来说两句吧...

相关阅读