zoukankan      html  css  js  c++  java
  • java获取时间戳的方法

    JAVA 获取当前月的初始时间的时间戳

    1. public static long getMonthFirstDay() {  
    2.     Calendar calendar = Calendar.getInstance();// 获取当前日期  
    3.     calendar.add(Calendar.MONTH, 0);  
    4.     calendar.set(Calendar.DAY_OF_MONTH, 1);// 设置为1号,当前日期既为本月第一天  
    5.     calendar.set(Calendar.HOUR_OF_DAY, 0);  
    6.     calendar.set(Calendar.MINUTE, 0);  
    7.     calendar.set(Calendar.SECOND, 0);  
    8.     System.out.println(calendar.getTimeInMillis());  
    9.   
    10.     return calendar.getTimeInMillis();  
    11. }  

    获取当前时间戳

    //方法 一
    System.currentTimeMillis();
    //方法 二
    Calendar.getInstance().getTimeInMillis();
    //方法 三
    new Date().getTime();
    Calendar.getInstance().getTimeInMillis() 这种方式速度最慢,这是因为Canlendar要处理时区问题会耗费较多的时间。

    在开发过程中,通常很多人都习惯使用new Date()来获取当前时间,使用起来也比较方便,同时还可以获取与当前时间有关的各方面信息,例如获取小时,分钟等等,而且还可以格式化输出,包含的信息是比较丰富的。但是有些时候或许你并不需要获取那么多信息,你只需要关心它返回的毫秒数就行了,例如getTime()。为了获取这个时间戳,很多人也喜欢使用new Date().getTime()去获取,咋一看没什么问题,但其实没这个必要。

         其实看一下java的源码就知道了:

      public Date()
      {
        this(System.currentTimeMillis());
      }

    已经很明显了,new Date()所做的事情其实就是调用了System.currentTimeMillis()。如果仅仅是需要或者毫秒数,那么完全可以使用System.currentTimeMillis()去代替new Date(),效率上会高一点。况且很多人喜欢在同一个方法里面多次使用new Date(),通常性能就是这样一点一点地消耗掉,这里其实可以声明一个引用。

    获取当前时间

    SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式
    String date = df.format(new Date());// new Date()为获取当前系统时间,也可使用当前时间戳

    我们看一下JAVA获得当前时间的几种方法

    package com.xjp.common.util;

      import java.sql.Timestamp;

      import java.text.ParsePosition;

      import java.text.SimpleDateFormat;

      import java.util.Date;

      import com.ttsoft.framework.util.DateUtil;

      /**

      * Title: 时间获取

      * Description: 当前时间

      * Company:

      * @author jiq

      * @version 1.0

      */

      public class XJPDateUtil extends DateUtil {

        public static final String[] months = { "一月", "二月", "三月", "四月", "五月", "六月",

          "七月", "八月", "九月", "十月", "十一月", "十二月", };

        public static final String[] quarters = { "一季度", "二季度", "三季度", "四季度" };

        public XJPDateUtil() {

        }

      /**

      * 获取日期字符串。

      *

      *

      * 日期字符串格式: yyyyMMdd

      * 其中:

      * yyyy 表示4位年。

      * MM 表示2位月。

      * dd 表示2位日。

      *

      *

      * @return String "yyyyMMdd"格式的日期字符串。

      */

        public static String getDate() {

          SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd");

          return formatter.format(new Date());

        }

      /**

      * 获取当前年度字符串。

      *

      *

      * 日期字符串格式: yyyy

      * 其中:

      * yyyy 表示4位年。

      *

      *

      * @return String "yyyy"格式的当前年度字符串。

      */

        public static String getNowYear() {

           SimpleDateFormat formatter = new SimpleDateFormat("yyyy");

           return formatter.format(new Date());

        }

      /**

      * 获取当前月度字符串。

      *

      *

      * 日期字符串格式: MM

      * 其中:

      * MM 表示4位年。

      *

      *

      * @return String "yyyy"格式的当前月度字符串。

      */

        public static String getNowMonth() {

          SimpleDateFormat formatter = new SimpleDateFormat("MM");

          return formatter.format(new Date());

        }

      /**

      * 获取当前月度字符串。

      *

      *

      * 日期字符串格式: dd

      * 其中:

      * dd 表示4位年。

      *

      *

      * @return String "yyyy"格式的当前月度字符串。

      */

      public static String getNowDay() {

        SimpleDateFormat formatter = new SimpleDateFormat("dd");

        return formatter.format(new Date());

      }

      /**

      * 获取日期字符串。

      *

      *

      * 日期字符串格式: yyyyMMdd

      * 其中:

      * yyyy 表示4位年。

      * MM 表示2位月。

      * dd 表示2位日。

      *

      *

      * @param date

      * 需要转化的日期。

      * @return String "yyyyMMdd"格式的日期字符串。

      */

      public static String getDate(Date date) {

        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");

        return formatter.format(date);

      }

      /**

      * 获取日期字符串。

      *

      *

      * 日期字符串格式: yyyyMMdd

      * 其中:

      * yyyy 表示4位年。

      * MM 表示2位月。

      * dd 表示2位日。

      *

      *

      * @param date

      * 需要转化的日期。

      * @return String "yyyyMMdd"格式的日期字符串。

      */

      /**

      * 将指定的日期字符串转化为日期对象

      *

      * @param dateStr

      * 日期字符串

      * @return java.util.Date

      * @roseuid 3F39FE450385

      */

      public static Date getDate(String dateStr) {

          if (XJPTypeChecker.isDate(dateStr)) { // 日期型

            SimpleDateFormat df = new SimpleDateFormat("yyyyMMdd");

          try {

            java.util.Date date = df.parse(dateStr);

          return date;

          } catch (Exception ex) {

            Logger.write("日期格式不符合或者日期为空!请检查!");

            return null;

          } // end try - catch

        } else if (XJPTypeChecker.isDatetime(dateStr)) { // 日期时间型

        SimpleDateFormat df = new SimpleDateFormat(

            "yyyy-MM-dd HH:mm:ss.SSS");

        try {

            java.util.Date date = df.parse(dateStr);

            return date;

          } catch (Exception ex) {

            return null;

        } // end try - catch

       } // end if

       return null;

      }

      /**

      * 获取日期字符串。

      *

      *

      * 日期字符串格式: yyyy-MM-dd

      * 其中:

      * yyyy 表示4位年。

      * MM 表示2位月。

      * dd 表示2位日。

      *

      *

      * @return String "yyyy-MM-dd"格式的日期字符串。

      */

      public static String getHyphenDate() {

        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");

        return formatter.format(new Date());

      }

      /**

      * 获取日期字符串。

      *

      *

      * 日期字符串格式: yyyy-MM-dd

      * 其中:

      * yyyy 表示4位年。

      * MM 表示2位月。

      * dd 表示2位日。

      *

      *

      * @param date

      * 需要转化的日期。

      * @return String "yyyy-MM-dd"格式的日期字符串。

      */

      public static String getHyphenDate(Date date) {

      SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");

      return formatter.format(date);

      }

      /**

      * 将"yyyyMMdd"格式的日期字符串转换为日期对象。

      *

      * @param source

      * 日期字符串。

      * @return Date 日期对象。

      */

      public static Date parsePlainDate(String source) {

      SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");

      return sdf.parse(source, new ParsePosition(0));

      }

      /**

      * 将“yyyy-MM-dd”格式的日期字符串转换为日期对象。

      *

      * @param source

      * 日期字符串。

      * @return Date 日期对象。

      */

      public static Date parseHyphenDate(String source) {

      SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

      return sdf.parse(source, new ParsePosition(0));

      }

      /**

      * 将指定格式的日期字符串转换为日期对象。

      *

      * @param source

      * 日期字符串。

      * @param pattern

      * 模式。

      * @return Date 日期对象。

      */

      public static Date parseDate(String source, String pattern) {

      SimpleDateFormat sdf = new SimpleDateFormat(pattern);

      return sdf.parse(source, new ParsePosition(0));

      }

      /**

      * 将“yyyy-MM-dd”格式的日期字符串转换为“yyyyMMdd”格式的日期字符串。

      *

      * @param source

      * 日期字符串。

      * @return String "yyyymmdd"格式的日期字符串。

      */

      public static String toPlainDate(String source) {

      Date date = parseHyphenDate(source);

      SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd");

      return formatter.format(date);

      }

      /**

      * 将“yyyyMMdd”格式的日期字符串转换为“yyyy-MM-dd”格式的日期字符串。

      *

      * @param source

      * 日期字符串。

      * @return String "yyyy-MM-dd"格式的日期字符串。

      */

      public static String toHyphenDate(String source) {

      Date date = parsePlainDate(source);

      SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");

      return formatter.format(date);

      }

      /**

      * 获取时间戳,将日期对象转换为时间戳类型。

      *

      * @param date

      * 日期对象

      * @return Timestamp 时间戳

      */

      public static Timestamp getTimestamp(Date date) {

      return new Timestamp(date.getTime());

      }

      /**

      * 获取时间戳,将当前日期转换为时间戳类型。

      *

      * @return Timestamp 时间戳

      */

      public static Timestamp getTimestamp() {

      return new Timestamp(new Date().getTime());

      }

      /**

      * 将“yyyyMMdd”格式的日期字符串转换为Timestamp类型的对象。

      *

      * @param source

      * 日期字符串

      * @return Timestamp 时间戳

      */

      public static Timestamp parseTimestamp(String source) {

      Date date = parsePlainDate(source);

      return getTimestamp(date);

      }

      /**

      * 获得年度周期

      * Example:

      * XJPDateUtil.getPeriodYear("20040229" , -1);

      * XJPDateUtil.getPeriodYear("20040228" , -1);

      * XJPDateUtil.getPeriodYear("20020230" , 2);

      *

      * @param source

      * 时间串

      * @param yearPeriod

      * 年度周期 -1代表本时间的上一年度,以次类推。

      * @return String 时间。

      */

      public static String getPeriodYear(String source, int yearPeriod) {

      int p = Integer.parseInt(source.substring(0, 4)) + yearPeriod;

      String newYear = String.valueOf(p)

      + source.substring(4, source.length());

      Date date = parsePlainDate(newYear);

      String s = getDate(date);

      int ny = Integer.parseInt(s);

      int sy = Integer.parseInt(newYear);

      while (ny > sy) {

      sy--;

      ny = Integer.parseInt(getDate(parsePlainDate(String.valueOf(sy))));

      }

      return String.valueOf(sy);

      }

      /**

      * 获取当前日期和时间

      *

      * @return String

      */

      public static String getCurrentDateStr() {

      Date date = new Date();

      String str = null;

      SimpleDateFormat df = new SimpleDateFormat("yyyyMMdd HH:mm:ss");

      str = df.format(date);

      return str;

      }

      /**

      * 日期相加

      *

      * @param day

      * 天数

      * @return 返回相加后的日期

      */

      public static String addDate(int day) {

      java.util.Calendar c = java.util.Calendar.getInstance();

      c.setTimeInMillis(System.currentTimeMillis() + ((long) day) * 24 * 3600

      * 1000);

      SimpleDateFormat df = new SimpleDateFormat("yyyyMMdd HH:mm:ss");

      return df.format(c.getTime());

      }

      /**

      * 返回毫秒

      *

      * @param date

      * 日期

      * @return 返回毫秒

      */

      public static long getMillis(java.util.Date date) {

      java.util.Calendar c = java.util.Calendar.getInstance();

      c.setTime(date);

      return c.getTimeInMillis();

      }

      /**

      * 获取当前日期和时间

      * @param format 日期格式 例:yyyy-MM-dd hh:mm

      * @return String

      */

      public static String getNowDate(String format) {

      Date date = new Date();

      String str = null;

      SimpleDateFormat df = new SimpleDateFormat(format);

      str = df.format(date);

      return str;

      }

      /**

      * 将strmon的日期减小一个月

      * @param mon

      * @return

      */

      public static String getReduceMonDate(String strmon) {

      if (strmon != null && !strmon.equals("")) {

      Date mon = parseHyphenDate(strmon);

      mon.setMonth(mon.getMonth() - 1);

      return getHyphenDate(mon);

      } else {

      return "";

      }

      }

      public static String getTimeStr(String dateStr){

      Date date=getDate(dateStr);

      String str = null;

      SimpleDateFormat df = new SimpleDateFormat("HH:mm:ss");

      str = df.format(date);

      return str;

      }

      public static String getTimeStr(){

      String str="";

      SimpleDateFormat df = new SimpleDateFormat("HH:mm:ss");

      str = df.format(new Date());

      return str;

      }

      }

  • 相关阅读:
    121. Best Time to Buy and Sell Stock
    70. Climbing Stairs
    647. Palindromic Substrings
    609. Find Duplicate File in System
    583. Delete Operation for Two Strings
    556 Next Greater Element III
    553. Optimal Division
    539. Minimum Time Difference
    537. Complex Number Multiplication
    227. Basic Calculator II
  • 原文地址:https://www.cnblogs.com/dingjiaoyang/p/5127235.html
Copyright © 2011-2022 走看看