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;

      }

      }

  • 相关阅读:
    python 17 函数基础(一)
    python 17 异常
    python 16 文件操作(二)
    python 15 文件操作(一)
    python 13 字符编码
    《转》python 12 列表解析
    《转》python 11 表达式和语句
    关于int型数据的SQL模糊查询猜想
    PB学习笔记
    JSONObject.fromObject()
  • 原文地址:https://www.cnblogs.com/dingjiaoyang/p/5127235.html
Copyright © 2011-2022 走看看