`
kidiaoer
  • 浏览: 807137 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

常用的与时间戳(Timestamp)相关的函数总结

阅读更多
TimestampUtil.java

package util;

import java.sql.Timestamp;
import java.util.Calendar;

public class TimestampUtil {
 public final static int YEAR=1;
 public final static int MONTH=2;
 public final static int DAY=3;
 public final static int HOUR=4;
 public final static int MINUTE=5;
 public final static int SECOND=6;
 public final static int WEEK=7;
 public final static int MILLISECOND=8;
 public final static int CENTURY=9;
 public final static int SUNDAY=Calendar.SUNDAY;
 public final static int MONDAY=Calendar.MONDAY;
 public final static int WEDNESDAY=Calendar.WEDNESDAY;
 public final static int TUESDAY=Calendar.TUESDAY;
 public final static int THURSDAY=Calendar.THURSDAY;
 public final static int FRIDAY=Calendar.FRIDAY;
 public final static int SATURDAY=Calendar.SATURDAY;
 //获取若干偏移量的时间戳(Timestamp),参数一为操作时间戳(Timestamp),参数二为偏移单位,参数三为偏移值
 public static Timestamp getTiemstamp(Timestamp operTime, int unit, int value) {
  if (operTime==null) return null;
  Calendar c = Calendar.getInstance();
  c.setTime(operTime);
  Timestamp newTime=null;
  switch(unit)
  {
  case YEAR:
   c.set(Calendar.YEAR, c.get(Calendar.YEAR) + value);
   newTime=new Timestamp(c.getTimeInMillis());
   break;
  case MONTH:
   c.set(Calendar.MONTH, c.get(Calendar.MONTH) + value);
   newTime=new Timestamp(c.getTimeInMillis());
   break;
  case DAY:
   c.set(Calendar.DATE, c.get(Calendar.DATE) + value);
   newTime=new Timestamp(c.getTimeInMillis());
   break;
  case HOUR:
   c.set(Calendar.HOUR, c.get(Calendar.HOUR) + value);
   newTime=new Timestamp(c.getTimeInMillis());
   break;
  case MINUTE:
   c.set(Calendar.MINUTE, c.get(Calendar.MINUTE) + value);
   newTime=new Timestamp(c.getTimeInMillis());
   break;
  case SECOND:
   c.set(Calendar.SECOND, c.get(Calendar.SECOND) + value);
   newTime=new Timestamp(c.getTimeInMillis());
   break;
  case WEEK:
   c.set(Calendar.DATE, c.get(Calendar.DATE) + 7*value);
   newTime=new Timestamp(c.getTimeInMillis());
   break;
  case MILLISECOND:
   c.set(Calendar.MILLISECOND, c.get(Calendar.MILLISECOND) + value);
   newTime=new Timestamp(c.getTimeInMillis());
   break;
  case CENTURY:
   c.set(Calendar.YEAR, c.get(Calendar.YEAR) + 100*value);
   newTime=new Timestamp(c.getTimeInMillis());
   break;
  default:break;
  }
  return  newTime;
 }
 
 
 //获取若干偏移量的时间戳(Timestamp),参数一为操作时间戳(Timestamp),参数二为偏移单位,参数三为偏移值,参数四标记是否获取该天开始那一刻,参数五标记是否获取该天结束那一刻(参数四优先参数五)
 public static Timestamp getTiemstamp(Timestamp operTime, int unit, int value,
   boolean fromStart, boolean toEnd) {
  if (operTime==null) return null;
  Calendar c = Calendar.getInstance();
  c.setTime(getTiemstamp( operTime,unit,value));
  if (fromStart) {
   c.set(Calendar.HOUR, 0);
   c.set(Calendar.MINUTE, 0);
   c.set(Calendar.SECOND, 0);
  }
  else
  { 
  if (toEnd) {
   c.set(Calendar.HOUR, 23);
   c.set(Calendar.MINUTE, 59);
   c.set(Calendar.SECOND, 59);
  }
  }
  return new Timestamp(c.getTimeInMillis());
 }
 
 //获取精度到指定单位的时间戳字符串
 public static String getTimestampString(Timestamp operTime,int unit)
 {
  if(operTime!=null)
  {
   String str="N/A";
   switch(unit)
   {
   case YEAR:
    str=operTime.toString().substring(0,4);
   case MONTH:
    str=operTime.toString().substring(0,7);
    break;
   case DAY:
    str=operTime.toString().substring(0,10);
    break;
   case HOUR:
    str=operTime.toString().substring(0,13);
    break;
   case MINUTE:
    str=operTime.toString().substring(0,16);
    break;
   case SECOND:
    str= operTime.toString().substring(0,19); 
    break;
   case MILLISECOND:
    str= operTime.toString(); 
    break;
   default:break;
   }
   return str;
  }
  return "N/A";
 }
 
 //判断两个时间戳(Timestamp)是否在同一天
 public static boolean isTheSameDate(Timestamp time1,Timestamp time2 ) 
 {
  if(time1!=null&&time2!=null){
  Calendar c1=Calendar.getInstance();
  c1.setTime(time1);
  int y1=c1.get(Calendar.YEAR);
  int m1=c1.get(Calendar.MONTH);
  int d1=c1.get(Calendar.DATE);
  Calendar c2=Calendar.getInstance();
  c2.setTime(time2);
  int y2=c2.get(Calendar.YEAR);
  int m2=c2.get(Calendar.MONTH);
  int d2=c2.get(Calendar.DATE);
  if(y1==y2&&m1==m2&&d1==d2)
  {
   return true;
  }
  }
  else
  {
   if(time1==null&&time2==null)
   {
    return true;
   }
  }
  return false;
 }
 
 //获取操作时间戳(Timestamp)所在周的一天,其顺序为:星期天,一,二,三,四,五,六
 public static Timestamp getDayOfWeek(Timestamp operTime,int day)
 {
  if(operTime!=null&&day>0&&day<=7)
  {
  Calendar c=Calendar.getInstance();
  c.setTime(operTime);
  c.set(Calendar.DAY_OF_WEEK, day);
  return new Timestamp(c.getTimeInMillis());
  }
  return null;
   
 }
}

//功能注释已经说明,不在累赘。继续总结中,热烈欢迎各位朋友来此讨论
分享到:
评论

相关推荐

    java_时间戳与Date_相互转化相关函数.txt

    java_时间戳与Date_相互转化相关函数.txt

    oracle中日期类型与unix 时间戳的转换

    oracle中日期类型与unix 时间戳的转换, Unix时间戳记是从'1970-01-01 00:00:00'GMT开始的秒数,表现为整数型。 Oracle中的时间是Date型,以下函数提供了两种时间转换的Oracle函数 --unix时间戳与date时间互转 ...

    时间戳与时间互换精确到毫秒

    开源的时间戳精确到毫秒级别几乎全API函数部分使用支持库命令,此源代码精易没有功能都是类似的.@tian89。

    MySQL中日期和时间戳互相转换的函数和方法

    ① 时间戳转换成日期 代码如下: FROM_UNIXTIME 例如: 数据表中 invest_time 存储的是时间戳,如 1429063399 使用 FROM_UNIXTIME 可以把时间戳转换为日期: 代码如下: select FROM_UNIXTIME(invest_time,’%Y年%m...

    Python之time模块的时间戳,时间字符串格式化与转换方法(13位时间戳)

    Python处理时间和时间戳的内置模块就有time,和datetime两个,本文先说time模块。 关于时间戳的几个概念 时间戳,根据1970年1月1日00:00:00开始按秒计算的...time模块与时间戳和时间相关的重要函数 time.time() 生成

    Mysql中时间戳转为Date的方法示例

    日志系统的表中,时间字段存储的是13位时间戳timestamp而不是日期数据,而在业务中,我们需要通过时间和ip来进行分组查询给定日期的数据. 当然你可以选择在业务层先将传入的日期转为时间戳,再去进行查询,但是既然mysql...

    vxWorks 时间戳精确毫秒计算时间源码及简介

    通过sysTimestampFreq()函数可以得到系统时间戳的频率,它往往反映的是CPU定时器的基准频率。当然,如此高的分辨率只能是一个理想值,不同的系统不一定都能实现。毕竟该时间戳的实现方式有一个致命的弱点:通过查询...

    hive函数大全(中文版)

    4. 指定格式日期转UNIX时间戳函数: unix_timestamp 18 5. 日期时间转日期函数: to_date 19 6. 日期转年函数: year 19 7. 日期转月函数: month 19 8. 日期转天函数: day 19 9. 日期转小时函数: hour 20 10. 日期转...

    ms sql server中实现的unix时间戳函数(含生成和格式化,可以和mysql兼容)

    主要介绍了ms sql server中实现的unix时间戳函数,含生成和格式化UNIX_TIMESTAMP、from_unixtime两个函数,可以和mysql兼容,需要的朋友可以参考下

    MySQL UNIX时间戳与日期的相互转换

    在MySQL中UNIX时间戳与日期的相互转换,举例说明 FROM_UNIXTIME 和 UNIX_TIMESTAMP 函数的使用。

    NIOS延时函数使用 timestamp

    11 alt_timestamp_start(); // 开启时间戳服务 12 13 t0 = alt_timestamp(); // 测量时间戳t0 14 usleep(1000); 15 t1 = alt_timestamp(); // 测量时间戳1 16 for(i=0; i; i++); 17 t2 = alt_timestamp(); /...

    mysql之TIMESTAMP(时间戳)用法详解

    TIMESTAMP时间戳在创建的时候可以有多重不同的特性,如: 1.在创建新记录和修改现有记录的时候都对这个数据列刷新: TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP 2.在创建新记录的时候把这...

    Python中常用的Python time模块常用函数

    常用函数time.time()函数time.localtime() 函数time.mktime()函数time.strftime() 函数time.strptime() 函数time.sleep() 函数 time.time()函数 定义 返回当前时间的时间戳(1970纪元后经过的浮点秒数) 语法 time....

    python时间与Unix时间戳相互转换方法详解

    对于时间数据,如2018-09-25 09:28:59,有时需要与Unix时间戳进行相互的运算,此时就需要对两种形式进行转换,在Python中,转换时需要用到time模块,具体的函数如下: 其中unix_time函数是正常时间转unix时间,local...

    GoPro-Timestamp:这些项目使用 Python 和 OpenCV 为 GoPro 视频添加时间戳

    有关脚本如何工作的更多信息,请访问: : 这个基本函数有几种不同的迭代。 基本脚本是 GoPro_timestamp.py。 GoPro_timestamp_filewalker 为批处理视频添加了额外的功能。 来自外部来源的数据可以添加到视频中,...

    FROM_UNIXTIME 格式化MYSQL时间戳函数

    format可以包含与DATE_FORMAT()函数列出的条目同样的修饰符。 根据format字符串格式化date值。下列修饰符可以被用在format字符串中: %M 月名字(January……December)%W 星期名字(Sunday……Saturday)%D 有英语前缀...

    go-timestamp-sql:用于将null.Time转换为Google Protobuf时间戳的函数,反之亦然

    go-timestamp-sql 从null.Time转换为Google Protobuf时间戳的功能,反之亦然。 这非常有用,因为我们使用库将时间戳字段存储到SQL中。入门go get -v github.com/AlpacaLabs/go-timestamp-sql 并在您的Go代码中import...

    详解MySQL日期 字符串 时间戳互转

    平时比较常用的时间、字符串、时间戳之间的互相转换,虽然常用但是几乎每次使用时候都喜欢去搜索一下用法;本文将作为一个笔记,整理一下三者之间的 转换(即:date转字符串、date转时间戳、字符串转date、字符串转...

    MySQL表中添加时间戳的几种方法

    场景: 有张表的数据需要用同步工具同步至其他库... 您可能感兴趣的文章:mysql之TIMESTAMP(时间戳)用法详解FROM_UNIXTIME 格式化MYSQL时间戳函数MySQL中日期和时间戳互相转换的函数和方法详解MySQL日期 字符串 时间戳

    JavaScript时间与时间戳的转换操作实例分析

    本文实例讲述了JavaScript时间与时间戳的转换操作。分享给大家供大家参考,具体如下: 一、时间转时间戳:javascript获得时间戳的方法有五种,都是通过实例化时间对象 new Date() 来进一步获取当前的时间戳 1. var ...

Global site tag (gtag.js) - Google Analytics