package com.sprucetec.tms.utils;

import java.math.BigDecimal;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date; /**
* 时间工具类
*
* Title: TmsTimeUtils.java<br>
* Description: <br
*/
public class TmsTimeUtils { /**
* 根据传入的时间字符串,获得unix对应的时间戳格式
*
* @author liuqiang(liuqang@meicai.cn)
* 2016年3月12日
* @param day
* @return
*/
public static Integer getDayUnixTimeStamp(String day) {
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
Date date;
try {
date = df.parse(day);
Calendar cal = Calendar.getInstance();
cal.setTime(date);
long timestamp = cal.getTimeInMillis();
return Integer.valueOf((int) (timestamp / 1000));
} catch (ParseException e) {
e.printStackTrace();
}
return 0;
} /**
* 将日期转换为 时间戳
* @author yangweiqiang 2016.12.01
* @param date
* @return
*/
public static Integer getDayUnixTimeStamp(Date date){
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
String day = df.format(date);
return getDayUnixTimeStamp(day);
} /**
* 获取当天日期的unix时间戳
*
* @author liuqiang(liuqiang@meicai.cn)
* 2016年3月12日
* @return
*/
public static Integer getTodayUnixTimeStamp() {
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
Date date = new Date();
String day = df.format(date);
return getDayUnixTimeStamp(day);
} /**
* 获得当前系统时间戳
* @author liuqiang(liuqiang@meicai.cn)
* 2016年3月20日
* @return
*/
public static Integer getNowTimeStamp() {
Integer now = 0;
Long time = System.currentTimeMillis() / 1000;
now = time.intValue();
return now;
} /**
* 描述: 将秒转换为指定格式化的日期
* @author yangweiqiang
* @param timeStamp 秒数
* @param format 格式化 yyyy-MM-dd等
* @date 2016/8/15
*/
public static String getFormatDate(Integer timeStamp,SimpleDateFormat format){
return format.format(new Date(timeStamp * 1000L));
} /**
* 获取某月最大的天数
* @author yangweiqiang
* @param time 日期
* @param format 日期格式化类型
* @date 2016/8/3
* @return 实际最大天数
*/
public static int getMaxDayOfMonth(String time,SimpleDateFormat format){
try {
Date date = format.parse(time);
Calendar calendar = Calendar.getInstance();
calendar.setTime(date); return calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
} catch (ParseException e) {
e.printStackTrace();
} return 0;
} /**
* 获取昨天的时间戳
* @return
*/
public static int getPreDayByToday(Integer days){
return getTodayUnixTimeStamp() + 86400 * days;
} /**
* 获取指定天的推迟天时间戳
* @param time
* @param days
* @return
*/
public static int getPreDayBy(Integer time,Integer days){
return time + 86400 * days;
} /**
* 获取指定天的推迟天时间戳
* @param time
* @param days 增加的天数
* @return
*/
public static int getPreDayBy(String time,Integer days){
return getDayUnixTimeStamp(time) + 86400 * days;
} /**
* 根据时间戳获取日期(此日期为几号)
* @param date
* @return
*/
public static int getDayBy(Integer date){
Calendar cal = Calendar.getInstance();
cal.setTime(new Date((long)date * 1000));
return cal.get(Calendar.DAY_OF_MONTH);
} /**
* 获取上个月第一天的Unix时间戳
*/
public static Integer getLastMonthFirstDayUnixTimeStamp() {
Calendar cal = Calendar.getInstance();
cal.setTime(new Date());
cal.add(Calendar.MONTH, -1);
cal.set(Calendar.DAY_OF_MONTH, cal.getActualMinimum(Calendar.DAY_OF_MONTH));
Date lastMonthFirstDay = cal.getTime();
return TmsTimeUtils.getDayUnixTimeStamp(lastMonthFirstDay);
} /**
* 获取上个月最后一天的Unix时间戳
*/
public static Integer getLastMonthLastDayUnixTimeStamp() {
Calendar cal = Calendar.getInstance();
cal.setTime(new Date());
cal.add(Calendar.MONTH, -1);
cal.set(Calendar.DAY_OF_MONTH, cal.getActualMaximum(Calendar.DAY_OF_MONTH));
Date lastMonthLastDay = cal.getTime();
return TmsTimeUtils.getDayUnixTimeStamp(lastMonthLastDay);
} /**
* 获取本月第一天的Unix时间戳
*/
public static Integer getThisMonthFirstDayUnixTimeStamp() {
Calendar cal = Calendar.getInstance();
cal.setTime(new Date());
cal.set(Calendar.DAY_OF_MONTH, cal.getActualMinimum(Calendar.DAY_OF_MONTH));
Date thisMonthFirstDay = cal.getTime();
return TmsTimeUtils.getDayUnixTimeStamp(thisMonthFirstDay);
} public static void main(String[] args) {
// System.out.println(TmsTimeUtils.getDayUnixTimeStamp("2016-03-12"));
// System.out.println(TmsTimeUtils.getTodayUnixTimeStamp());
System.out.println(getLastMonthFirstDayUnixTimeStamp());
System.out.println(getLastMonthLastDayUnixTimeStamp());
System.out.println(getThisMonthFirstDayUnixTimeStamp());
}
}

TmsTimeUtils 时间戳的更多相关文章

  1. C# DateTime与时间戳转换

    C# DateTime与时间戳的相互转换,包括JavaScript时间戳和Unix的时间戳. 1. 什么是时间戳 首先要清楚JavaScript与Unix的时间戳的区别: JavaScript时间戳: ...

  2. nodejs中获取时间戳、时间差

    Nodejs中获取时间戳的方法有很多种,例如: new Date().getTime() Date.now() process.uptime() process.hrtime() 平时想获取一个时间戳 ...

  3. EF里Guid类型数据的自增长、时间戳和复杂类型的用法

    通过前两章Lodging和Destination类的演示,大家肯定基本了解Code First是怎么玩的了,本章继续演示一些很实用的东西.文章的开头提示下:提供的demo为了后面演示效果,前面代码有些 ...

  4. fmt标签把时间戳格式化日期

    jsp页面标签格式化日期 <%@taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="f" %> ...

  5. MySQL对时间戳的转换处理

    开发中很多时候在数据库里都会存储Long类型的时间戳,而时间戳做比对会相对麻烦 我的绝决方案: SELECT FROM_UNIXTIME(LEFT(create_time,10), '%Y-%m-%d ...

  6. Kafka消息时间戳(kafka message timestamp)

    最近碰到了消息时间戳的问题,于是花了一些功夫研究了一下,特此记录一下.   Kafka消息的时间戳 在消息中增加了一个时间戳字段和时间戳类型.目前支持的时间戳类型有两种: CreateTime 和 L ...

  7. Python时间戳和日期的相互转换

    Python时间戳和日期的相互转换 (2014-03-17 11:24:35) 转载▼   分类: Python 当前时间戳:time.time() 当前日期:time.ctime() 1.Pytho ...

  8. 时间戳TimeStamp处理

     我获得这个时间戳是得想除以1000再处理的,看看你们的需要先除多少再处理 //时间戳处理 NSInteger time = timeStamp / 1000; NSNumber *timer = [ ...

  9. C#中DateTime.Ticks属性及Unix时间戳转换

    1.相关概念 DateTime.Ticks:表示0001 年 1 月 1 日午夜 12:00:00 以来所经历的 100 纳秒数,即Ticks的属性为100纳秒(1Ticks = 0.0001毫秒). ...

随机推荐

  1. Gym-100883F、Gym-101095B状态压缩小结

    状态压缩的核心思想就是将数压缩成二进制,用二进制位来表示对应的位能取或者不能取,相比起来很方便. Eg:Gym-100883F 题意:给你两个字符串,要求你将两个字符串合起来,并不改变原先的顺序,一共 ...

  2. ORA-38301:can not perform DDL/DML over objects in Recycle Bin

    一个智障操作,drop一个用户,下面的东西比较多,删得比较慢,然后shell突然关了. 就导致了,删不掉,又不能创建新的用户.出版本要得比较急,就先创建新的用户测试去了. 今天要弄个东西,又想起这个事 ...

  3. oracle 锁表查看与解锁

    查看被锁的表: select l.session_id,o.owner,o.object_name from v$locked_object l,dba_objects o where l.objec ...

  4. IPython:一种交互式计算和开发环境(魔术命令,快捷键)

    %run命令 在IPython会话环境中,所有文件都可以通过%run命令当做Python程序来运行. 假设在ipython_script_test.py中存放了一段简单的脚本,如下所示: def f( ...

  5. [置顶] AngularJS实战之路由ui-sref-active使用

    当我们使用angularjs的路由时,时常会出现一个需求,当选中菜单时把当前菜单的样式设置为选中状态(多数就是改变颜色) 接下来就看看Angular-UI-Router里的指令ui-sref-acti ...

  6. C++调用ocx

    1.保证ocx已正常注册,可以使用 2.创建一个C++的命令行程序,在主程序#import "HZ_KevinTest.ocx" no_namespace 生成一次程序,debug ...

  7. AIX 补丁升级

    下载地址:http://www-933.ibm.com/support/fixcentral 1.root登陆系统: 2.对系统进行备份或者克隆(见上一篇抄袭IBM官方文档的文章): 3.官方建议为/ ...

  8. Django-配置、静态文件与路由

    -----配置文件 1.BASE_DIR BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))   2.DEBU ...

  9. windows下解决numpy, scipy等库安装失败的方法

    如果pip安装scipy库失败,可以参考以下方法: scipy官方上提供了这样的方法: Windows packages Windows does not have any package manag ...

  10. CentOS 6.0 安装配置rails 2.3.11 + redmine 1.2.1 笔记

    没想到安装过程这么曲折,gem安装时下载经常是不成功的,无耐只好把.gem文件下载回来再本地安装,加上radmine 1.2.1对各组件的版本了也比较挑剔,中间走了不少弯路,折腾了二天时间,终于摸清路 ...