java中如何获取时间戳的方法实例

 更新时间:2017年11月01日 11:45:27   作者:Dr_Joseph  
时间戳通常是一个字符序列,唯一地标识某一刻的时间,所以下面这篇文章主要给大家介绍了关于java中如何获取时间戳的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧。

前言

数字时间戳技术是数字签名技术一种变种的应用。是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数(引用自百度百科)

在java开发过程中经常会遇到统计某一天或是某一个月的数据,因此常常需要获取截取数据的两个时间戳(比如统计今天的数据,则需要获取一个开始时间为今天零点以及一个结束时间为明天零点),然后根据数据相关的时间是否在该时间区间内来判断是否将其计入统计数据中。

一、java获取时间戳

话不多说,首先我们先拿上面的例子说起吧。如何获取今天零点以及明天零点的两个时间戳。

public Long getToday(){
  DateTime now = new DateTime();
  return new DateTime(now.getYear(), now.getMonthOfYear(), now.getDayOfMonth(), 0, 0, 0, 0).getMillis();
 }
 
 public Long getTomorrow(){
  DateTime now = new DateTime();
  return new DateTime(now.getYear(), now.getMonthOfYear(), now.getDayOfMonth(), 0, 0, 0, 0).plusDays(1).getMillis();
 }

上面的方法中用到了DateTime中的plusDays(),同理,你如果需要获取下 个星期(年,月,时,分,秒,毫秒)前的时间戳,都有同样的plusYears(int X),plusMonths(int X)等等与之对应,如果要获取今天之前的就把传入一个负整数参数即可。

然而很多时候我们需要某个特定时间的时间戳,比如这个月5号14点23分6秒138毫秒的时间戳(这个时间并没有特殊的含义,随便选的)。

public Long getTime(){
  Long now = new Date().getTime();
  Calendar calendar = Calendar.getInstance();
  calendar.setTimeInMillis(now);
  calendar.set(Calendar.DAY_OF_MONTH, 5);
  calendar.set(Calendar.HOUR, 14);
  calendar.set(Calendar.MINUTE, 23);
  calendar.set(Calendar.SECOND, 6);
  calendar.set(Calendar.MILLISECOND, 138);
  return calendar.getTimeInMillis();
 }

再比如我们可能需要知道这个星期二的10点10分10秒的时间戳。

public Long getTime(){
  Long now = new Date().getTime();
  Calendar calendar = Calendar.getInstance();
  calendar.setTimeInMillis(now);
  calendar.set(Calendar.DAY_OF_WEEK, 2);
  calendar.set(Calendar.HOUR, 10);
  calendar.set(Calendar.MINUTE, 10);
  calendar.set(Calendar.SECOND, 10);
  return calendar.getTimeInMillis();
 }

二、Java中两种获取精确到秒的时间戳的方法

Java中的时间戳的毫秒主要通过最后的三位来进行计量的,下面给大家分享从网上整理的两种不同的方式将最后三位去掉。

方法一:通过String.substring()方法将最后的三位去掉

/** 
* 获取精确到秒的时间戳 
* @return 
*/ 
public static int getSecondTimestamp(Date date){ 
if (null == date) { 
return 0; 
} 
String timestamp = String.valueOf(date.getTime()); 
int length = timestamp.length(); 
if (length > 3) { 
return Integer.valueOf(timestamp.substring(0,length-3)); 
} else { 
return 0; 
} 
} 

方法二:通过整除将最后的三位去掉

/** 
* 获取精确到秒的时间戳 
* @param date 
* @return 
*/ 
public static int getSecondTimestampTwo(Date date){ 
if (null == date) { 
return 0; 
} 
String timestamp = String.valueOf(date.getTime()/1000); 
return Integer.valueOf(timestamp); 
}

以上就是我总结的一些获取时间戳的方法,如果平时需要快速进行时间与时间戳之间的转换,也可以在站长工具得到快速解决:Unix时间戳

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

相关文章

  • MyBatis配置文件元素示例详解

    MyBatis配置文件元素示例详解

    在MyBatis框架的核心配置文件中,<configuration>元素是配置文件的根元素,其他元素都要在<contiguration>元素内配置,这篇文章主要介绍了MyBatis配置文件元素,需要的朋友可以参考下
    2023-06-06
  • Spring解读@Component和@Configuration的区别以及源码分析

    Spring解读@Component和@Configuration的区别以及源码分析

    通过实例分析@Component和@Configuration注解的区别,核心在于@Configuration会通过CGLIB代理确保Bean的单例,而@Component不会,在Spring容器中,使用@Configuration注解的类会被CGLIB增强,保证了即使在同一个类中多次调用@Bean方法
    2024-10-10
  • springboot导入多个配置文件的方法实践

    springboot导入多个配置文件的方法实践

    Spring Boot 2.4.x引入了新的配置导入方式,通过spring.config.import属性可以灵活地导入多种类型的配置文件,本文就来介绍一下,感兴趣的可以了解一下
    2024-11-11
  • 详解Java中的final关键字

    详解Java中的final关键字

    子类可以在父类的基础上改写父类内容,为了避免这种随意改写的情况,Java提供了final 关键字,用于修饰不可改变内容。本文就来详细说说final关键字的使用,需要的可以参考一下
    2022-10-10
  • 一文带你吃透JSP增删改查实战案例详细解读

    一文带你吃透JSP增删改查实战案例详细解读

    这篇文章主要为大家详细介绍了JSP中增删改查实战案例的相关知识,文中的示例代码讲解现象,具有一定的借鉴价值,感兴趣的小伙伴可以了解一下
    2023-03-03
  • SpringBoot3.3中实现多端口监听的示例代码

    SpringBoot3.3中实现多端口监听的示例代码

    在SpringBoot应用中实现多端口监听,可以让一个应用处理不同类型的HTTP请求或暴露多个服务接口,本文详细讲解了通过配置application.yml文件和编写自定义配置类的方法,实现了对多个端口的监听,感兴趣的可以了解一下
    2024-11-11
  • 了解java中的Clojure如何抽象并发性和共享状态

    了解java中的Clojure如何抽象并发性和共享状态

    Clojure是一种运行在Java平台上的 Lisp 方言,Lisp是一种以表达性和功能强大著称的编程语言,但人们通常认为它不太适合应用于一般情况,而Clojure的出现彻底改变了这一现状。,需要的朋友可以参考下
    2019-06-06
  • Spring Security如何实现升级密码加密方式详解

    Spring Security如何实现升级密码加密方式详解

    这篇文章主要为大家介绍了Spring Security实现升级密码加密方式详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-01-01
  • java实现图片上加文字水印(SpringMVC + Jsp)

    java实现图片上加文字水印(SpringMVC + Jsp)

    这篇文章主要为大家详细介绍了java实现在图片上加文字水印的方法,水印可以是图片或者文字,操作方便,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-05-05
  • 轻松掌握java中介者模式

    轻松掌握java中介者模式

    这篇文章主要帮助大家轻松掌握java中介者模式,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-09-09

最新评论