「java时间guid」java时间过后改变状态

博主:adminadmin 2023-03-18 15:20:10 452

今天给各位分享java时间guid的知识,其中也会对java时间过后改变状态进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

Java获取时间戳精确到年月日时

其实系统默认的都是毫秒数的时间戳, 所以你想要的2017-01-16 17:00:00 不是提取的, 而是格式化的

new SimpleDateFormat("yyyy-MM-dd HH:00:00").format(System.currentTimeMillis());

怎样用java生成GUID与UUID

两种方式生成guid 与uuid

需要comm log 库

/**

 * @author Administrator

 *

 * TODO To change the template for this generated type comment go to

 * Window - Preferences - Java - Code Style - Code Templates

 */

import java.net.InetAddress;

import java.net.UnknownHostException;

import java.security.MessageDigest;

import java.security.NoSuchAlgorithmException;

import java.security.SecureRandom;

import java.util.Random;

public class RandomGUID extends Object {

   protected final org.apache.commons.logging.Log logger = org.apache.commons.logging.LogFactory

      .getLog(getClass());

   public String valueBeforeMD5 = "";

   public String valueAfterMD5 = "";

   private static Random myRand;

   private static SecureRandom mySecureRand;

   private static String s_id;

   private static final int PAD_BELOW = 0x10;

   private static final int TWO_BYTES = 0xFF;

   /*

    * Static block to take care of one time secureRandom seed.

    * It takes a few seconds to initialize SecureRandom.  You might

    * want to consider removing this static block or replacing

    * it with a "time since first loaded" seed to reduce this time.

    * This block will run only once per JVM instance.

      */

   static {

      mySecureRand = new SecureRandom();

      long secureInitializer = mySecureRand.nextLong();

      myRand = new Random(secureInitializer);

      try {

         s_id = InetAddress.getLocalHost().toString();

      } catch (UnknownHostException e) {

         e.printStackTrace();

      }

   }

   /*

    * Default constructor.  With no specification of security option,

    * this constructor defaults to lower security, high performance.

    */

   public RandomGUID() {

      getRandomGUID(false);

   }

   /*

    * Constructor with security option.  Setting secure true

    * enables each random number generated to be cryptographically

    * strong.  Secure false defaults to the standard Random function seeded

    * with a single cryptographically strong random number.

    */

   public RandomGUID(boolean secure) {

      getRandomGUID(secure);

   }

   /*

    * Method to generate the random GUID

    */

   private void getRandomGUID(boolean secure) {

      MessageDigest md5 = null;

      StringBuffer sbValueBeforeMD5 = new StringBuffer(128);

      try {

         md5 = MessageDigest.getInstance("MD5");

      } catch (NoSuchAlgorithmException e) {

         logger.error("Error: " + e);

      }

      try {

         long time = System.currentTimeMillis();

         long rand = 0;

         if (secure) {

            rand = mySecureRand.nextLong();

         } else {

            rand = myRand.nextLong();

         }

         sbValueBeforeMD5.append(s_id);

         sbValueBeforeMD5.append(":");

         sbValueBeforeMD5.append(Long.toString(time));

         sbValueBeforeMD5.append(":");

         sbValueBeforeMD5.append(Long.toString(rand));

         valueBeforeMD5 = sbValueBeforeMD5.toString();

         md5.update(valueBeforeMD5.getBytes());

         byte[] array = md5.digest();

         StringBuffer sb = new StringBuffer(32);

         for (int j = 0; j  array.length; ++j) {

            int b = array[j]  TWO_BYTES;

            if (b  PAD_BELOW)

               sb.append('0');

            sb.append(Integer.toHexString(b));

         }

         valueAfterMD5 = sb.toString();

      } catch (Exception e) {

         logger.error("Error:" + e);

      }

   }

   /*

    * Convert to the standard format for GUID

    * (Useful for SQL Server UniqueIdentifiers, etc.)

    * Example: C2FEEEAC-CFCD-11D1-8B05-00600806D9B6

    */

   public String toString() {

      String raw = valueAfterMD5.toUpperCase();

      StringBuffer sb = new StringBuffer(64);

      sb.append(raw.substring(0, 8));

      sb.append("-");

      sb.append(raw.substring(8, 12));

      sb.append("-");

      sb.append(raw.substring(12, 16));

      sb.append("-");

      sb.append(raw.substring(16, 20));

      sb.append("-");

      sb.append(raw.substring(20));

      return sb.toString();

   }

     // Demonstraton and self test of class

     public static void main(String args[]) {

       for (int i=0; i 100; i++) {

         RandomGUID myGUID = new RandomGUID();

         System.out.println("Seeding String=" + myGUID.valueBeforeMD5);

         System.out.println("rawGUID=" + myGUID.valueAfterMD5);

         System.out.println("RandomGUID=" + myGUID.toString());

       }

     }

}

同样

UUID uuid = UUID.randomUUID();

System.out.println("{"+uuid.toString()+"}");

UUID是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的。通常平台会提供生成UUID的API。UUID按照开放软件基金会(OSF)制定的标准计算,用到了以太网卡地址、纳秒级时间、芯片ID码和许多可能的数字。由以下几部分的组合:当前日期和时间(UUID的第一个部分与时间有关,如果你在生成一个UUID之后,过几秒又生成一个UUID,则第一个部分不同,其余相同),时钟序列,全局唯一的IEEE机器识别号(如果有网卡,从网卡获得,没有网卡以其他方式获得),UUID的唯一缺陷在于生成的结果串会比较长。关于UUID这个标准使用最普遍的是微软的GUID(Globals Unique Identifiers)。

java uuid 和guid 的区别

UUID是一个由4个连字号(-)将32个字节长的字符串分隔后生成的字符串,总共36个字节长。比如:550e8400-e29b-41d4-a716-446655440000

GUID 是微软对UUID这个标准的实现。UUID是由开放软件基金会(OSF)定义的。UUID还有其它各种实现,不止GUID一种。比如我们这里在Java中用到的。

java里表示时间的类型是什么?

java.util.Date,和java.util.Calendar 是 java 的主要的时间类型

Java.util.Calendar类是java.util.Date类的一个更加深入,更加全面的替代。Java.util.Calendar类支持java.util.Date的所有功能,此外,Calendar还引入了多语言,多区域的特性,可以根据需要获取不同区域,不同时区的时间,Calendar还增加了比Date更加方便和快捷的许多操作,如获取一年当中的第几个星期,各个月的天数等便捷的方法。

Java.util.Calendar区别与java.util.Date的几个地方也需要注意一下:首先,Calendar增加了毫秒的时间段,通过它可以获取时间点的毫秒值,而java.util.Date只是精确到秒。其次,Calendar过去年的时候是当前年份比如:2010,而Date获取年份的时获取到的是当前年份-1900的一个值(2010-1900=110,因此,你调用getYear后过去的值就是110)。最后Calendar是一个抽象类,之所以能够实例化,是因为此处的Calendar充当了一个类似于工厂的作用,在getInstance方法中实例化了Calendar子类GregorianCalendar,并把它返回给客户使用。

此外,还有 java.sql.Date, java.sql.Time, java.sql.Timestamp

关于java时间guid和java时间过后改变状态的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。