java 时间戳工具类(最好最全)

package com.utils;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.TimeZone;

import android.text.format.DateFormat;

public class DateUtil {

Calendar cald;

    public String mDateStringFormat="yyyy-MM-dd";
    public String mTimeStringFormat="HH:mm:ss";
    public String mDateTimeStringFormat="yyyy-MM-dd HH:mm:ss";
public final static long ONE_DAY_MILLISECONDS = 86400000;
    /**
     * 以当前时间,建立一个DateUtil
     */
    public DateUtil()
    {
    cald = GregorianCalendar.getInstance();
    }
    /**
     * 以给定的long型的时间戳,建立一个DateUtil,这个时间戳是和本地time zone 无关的
     * @param time
     */
    public DateUtil(long time)
    {
    cald = GregorianCalendar.getInstance();
    setTime(time);
    }

    /**
     * 用字符串时间来建立一个DateUtil
     * @param dt
     * @throws ParseException
     */
    public DateUtil(String dt) throws ParseException
    {
    cald = GregorianCalendar.getInstance();
    setTime(dt);
    }
     /**
      * 用给定的时间,建立一个dateUtil类
      * @param year
      * @param month
      * @param day
      * @param hour
      * @param minute
      * @param second
      */
    public DateUtil(int year, int month, int day, int hour, int minute, int second)
     {
    cald = GregorianCalendar.getInstance();
    setTime(year, month, day, hour,minute,second);
     }
     /**
      * 用一个时间戳来设定当前的DateUtil,,这个时间戳是和本地time zone 无关的
      * @param time
      */
    public void setTime(long time)
    {
    Date datetime = new Date(time);
    cald.setTime(datetime);
    }
    /**
     *用一个字符串时间来设定DateUtil的时间,该字符串必须符合一定的格式,缺省的
     *格式是yyyy-MM-dd hh:mm:ss, 如果格式不一样,可以通过调用 setDateTimeStringFormat
     *设定
     * @param dt
     * @throws ParseException
     */
    public void setTime(String dt) throws ParseException
   {
    SimpleDateFormat mDateFormat = new SimpleDateFormat(mDateTimeStringFormat);
    Date datetime = mDateFormat.parse(dt);
    cald.setTime(datetime);
   }
    /**
     * 设置年、月、日、时、分、秒,注意这些是local time zone 时间
     * @param year
     * @param month
     * @param day
     * @param hour
     * @param minute
     * @param second
     */
    public void setTime(int year, int month, int day, int hour, int minute, int second)
    {
    cald.set(year, month, day, hour, minute, second);
    }
    /**
     * 设置年、月、日
     * @param year
     * @param month
     * @param day
     */
    public void setDateTime(int year, int month, int day)
    {
    cald.set(year, month, day);
    }

    /**
     * 设置时、分、秒
     * @param hour
     * @param minute
     * @param second
     */
    public void setTimeTime(int hour, int minute, int second)
    {
    cald.set(Calendar.HOUR_OF_DAY, hour);
    cald.set(Calendar.MINUTE, minute);
    cald.set(Calendar.SECOND, second);
    }

    /**
     * 设置时、分
     * @param hour
     * @param minute
     * @param second
     */
    public void setShortTimeTime(int hour, int minute)
    {
    cald.set(Calendar.HOUR, hour);
    cald.set(Calendar.MINUTE, minute);
    }
    public String getDateString()
    {
    SimpleDateFormat mDateFormat = new SimpleDateFormat(mDateStringFormat);
    return mDateFormat.format(cald.getTime());
    }
    public String getTimeString()
    {
    SimpleDateFormat mDateFormat = new SimpleDateFormat(mTimeStringFormat);
    return mDateFormat.format(cald.getTime());
    }

    /**
     * 返回unix时间戳,这个是和time zone 没有关系的
     * @return
     */
    public long getMillsecond()
    {
    return cald.getTime().getTime();
    }
    public int getYear()
    {
    return cald.get(Calendar.YEAR);
    }
    public int getMonth()
    {
    return cald.get(Calendar.MONTH);
    }
    public int getDay()
    {
    return cald.get(Calendar.DAY_OF_MONTH);
    }
    public int getWeek(){
    return cald.get(Calendar.DAY_OF_WEEK);
    }
    public int getHour()
    {
    return cald.get(Calendar.HOUR_OF_DAY);
    }
    public int getMinute()
    {
    return cald.get(Calendar.MINUTE);
    }
    public int getSecond()
    {
    return cald.get(Calendar.SECOND);
    }

    public void setDateStringFormat(String dsf)
    {
    mDateStringFormat = dsf;
    }
    public void setTimeStringFormat(String tsf)
    {
    mTimeStringFormat = tsf;
    }
    public void setDateTimeStringFormat(String tsf)
    {
    mDateTimeStringFormat = tsf;
    }

    public long getDayStartTick(){
    setTimeTime(0,0,0);
    return ((long)(getMillsecond()/1000.0))*1000;//去掉小于一秒造成的不同
    }

    public long getDayEndTick(){
    return getDayStartTick() + ONE_DAY_MILLISECONDS;
   }

    public float getLiveDay(long birthday)
    {
    long curr = System.currentTimeMillis();
    float days = (curr - birthday)/(24*60*60*1000);
    return days;
    }
}

java 时间戳工具类(最好最全)

时间: 2024-08-09 19:51:46

java 时间戳工具类(最好最全)的相关文章

Java 数组工具类排序,最大值最小值等

public class ArrayUtils{ /** * 返回数组最大值 * * @param a * @return */ public static int max(int[] a){ // 返回数组最大值 int x; int aa[]=new int[a.length]; System.arraycopy(a,0,aa,0,a.length); x=aa[0]; for(int i=1;i<aa.length;i++){ if(aa[i]>x){ x=aa[i]; } } retu

java流工具类使用很方便

package com.auto.generate.utils ; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; /** * File Name: StreamTool.jav

java常用工具类(java技术交流群57388149)

package com.itjh.javaUtil; import java.util.ArrayList; import java.util.List; /** * * String工具类. <br> * * @author 宋立君 * @date 2014年06月24日 */ public class StringUtil { private static final int INDEX_NOT_FOUND = -1; private static final String EMPTY =

黑马程序员——Java集合工具类和泛型

Collections工具类和泛型 Collections和Collection Collections和Collection是不同的,Collections是工具类,用来操作集合的,而Collection是集合接口.Collections中有一系列的静态方法用来操作集合,但是不能更改集合内容.比如不能set()不能remove()元素,可以替换全部元素或者添加同一个元素. static List<String> list =Arrays .asList("one Two three

UrlUtils工具类,Java URL工具类,Java URL链接工具类

UrlUtils工具类,Java URL工具类,Java URL链接工具类 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ?Copyright 蕃薯耀 2017年7月15日 http://www.cnblogs.com/fanshuyao/ Java代码   import java.util.Ha

Java日期工具类,Java时间工具类,Java时间格式化

Java日期工具类,Java时间工具类,Java时间格式化 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ?Copyright  蕃薯耀 2017年2月4日 15:03:27 星期六 http://www.cnblogs.co

Java Properties工具类详解

1.Java Properties工具类位于java.util.Properties,该工具类的使用极其简单方便.首先该类是继承自 Hashtable<Object,Object> 这就奠定了Properties类的本质其实是一个HashTable,那么对于各种工具类的典型特性就是在HashTable的基础之上做各种封装,以降低操作的难度.说白了,本质上还是key = value结构,只不过key和value都是字符串而已.可以理解成为一个简化版的Map<String, String&g

Java并发工具类 - CountDownLatch

Java并发工具类 - CountDownLatch 1.简介 CountDownLatch是Java1.5之后引入的Java并发工具类,放在java.util.concurrent包下面 http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/package-summary.html 官方API. CountDownLatch能够使一个或多个线程等待其他线程完成各自的工作后再执行:CountDownLatch是JDK 5+里面

Java并发工具类CyclicBarrier

CyclicBarrier同步屏障 java并发工具类中有一个叫做CyclicBarrier的类,与CountDownLatch类似,都可以实现线程间的同步,但是差别是CyclicBarrier是可重置的同步屏障. 想象一个场景,有N个人不同时间走到一扇门,因为门需要N个人合力才能推开,所以人不足N个时,只能阻塞在此,等到N个人都到了之后,可以推开门,继续进行之前的工作.CyclicBarrier就是这扇门. 看看下面的代码,定义了一个线程数为2的,CyclicBarrier,并在主线程和另外一