java时间戳 calendar_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;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值