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编程语言中,时间戳(timestamp)与`java.util.Date`对象之间的转换是处理日期和时间数据时常见的需求。时间戳通常表示为从1970年1月1日午夜(UTC时间)到指定时刻之间的时间间隔,单位通常是毫秒。而`Date`类...
在C#编程中,SQL Server的时间戳(TimeStamp)字段是一个特殊的数据类型,它与我们通常理解的日期时间无关,而是用来记录数据行的版本或更改信息。本文将深入探讨如何在C#中读取和更新SQL Server中的Timestamp字段。...
例如,可能存在一个`timestamp_to_date(millisecond_timestamp)`函数,将毫秒时间戳转换为日期对象,以及`date_to_timestamp(date_object)`的反向操作。这些函数可能利用了底层操作系统提供的API,或者使用数学算法...
总结,不依赖库函数实现时间戳与日期时间的互转,虽然增加了代码复杂性,但能帮助理解时间戳的本质和日期时间转换的原理。在实际开发中,我们通常使用标准库提供的函数,如C++的`std::chrono`库或Python的`datetime`...
Delphi的开发者需要理解和使用系统API来获取和处理时间戳,例如使用`System.SysUtils`单元中的`UnixTimeToDateTime`和`DateTimeToUnixTime`函数进行转换。同时,处理夏令时则需要理解IANA时区数据库,这个数据库包含...
oracle中日期类型与unix 时间戳的转换, Unix时间戳记是从'1970-01-01 00:00:00'GMT开始的秒数,表现为整数型。 Oracle中的时间是Date型,以下函数提供了两种时间转换的Oracle函数 --unix时间戳与date时间互转 ...
在嵌入式系统中处理时间通常涉及到时间戳与时间的相互转换,这对于记录事件发生的时间、定时任务或者与其他系统进行时间同步等功能至关重要。本文将深入探讨C语言中如何实现时间戳与时间的转换,并提供适用于嵌入式...
3. **timestamp()函数**:直接调用`Date.parse(new Date())`获取当前时间的时间戳,即从Unix纪元到现在的毫秒数。 4. **getCurrentDate()函数**:与前两个函数类似,但在某些浏览器中进行了一些兼容性处理,确保跨...
在提供的文件`rtc.c`和`rtc.h`中,应当包含了初始化RTC、设置和读取时间、时间戳与日期时间转化的相关函数定义和声明。开发者可以根据这些函数进行应用层的编程,实现所需的功能。 总之,STM32F103的RTC功能为...
在MATLAB中,我们可以使用内置函数来轻松地生成和处理时间戳。 1. **生成时间戳** MATLAB提供了`now`函数,用于获取当前日期和时间,并将其转换为日期数。这个日期数可以视为自某个参考日期(默认为0000年1月1日)...
数字时间戳的实现基于公钥加密技术和哈希函数。哈希函数是一种单向加密算法,能够将任意长度的信息转化为固定长度的摘要,这个摘要具有唯一性,只要原始信息稍有改动,生成的摘要就会完全不同。用户首先使用哈希函数...
在C语言中处理时间戳与不同时区时间的转换是常见的需求,特别是在跨时区的数据交换和存储中。本文将深入探讨UTC时间戳与北京时间的转换,并提供一个C语言的源码示例。 首先,我们需要了解C语言中的`time.h`头文件,...
- 获取Unix时间戳:`time()` 函数返回当前时间的Unix时间戳。 - 转换回普通时间:使用 `localtime` 函数。 6. **PHP**: - 获取Unix时间戳:`time()` 函数直接返回当前时间的Unix时间戳。 - 转换回普通时间:`...
总结来说,了解如何在C语言环境中进行时间戳与时间的转换,特别是在嵌入式平台上,是每个AI项目实践者和嵌入式开发者必备的技能。熟练掌握这些方法,可以提高代码的可读性和效率,确保在资源有限的环境中也能实现...
总结,VB中的时间戳与时间转换主要依赖`DateAdd`和`DateDiff`函数,它们可以帮助我们轻松地在Unix时间戳和日期时间类型之间进行切换。了解这些基本概念和方法,能有效提升我们在编程中的工作效率。
MySQL 中可以使用 `UNIX_TIMESTAMP()` 函数获取 Unix 时间戳,该函数返回当前时间的秒数。要将 Unix 时间戳转换为普通时间,可以使用 `FROM_UNIXTIME()` 函数。 ```sql SELECT UNIX_TIMESTAMP(); SELECT FROM_UNIX...
除了`FormatTimestamp`,`DateTime`库还提供其他与时间戳相关的功能,如`Convert To Timestamp`用于将日期字符串转换为时间戳,`Get Current Timestamp`获取当前时间的时间戳,以及`Convert From Timestamp`将时间戳...
- **自定义实现**:易语言提供了`系统日期`和`系统时间`等函数,通过这些函数可以获取当前日期和时间,然后转换成时间戳。例如,可以先使用`系统日期`和`系统时间`获取日期和时间,然后转换成UTC格式,再计算出相...
本文将深入探讨时间戳与标准日期时间之间的转换,并提供相关编程示例。 首先,让我们了解什么是标准日期时间。标准日期时间是指按照国际标准ISO 8601定义的日期和时间格式,例如"2023-03-15T14:30:00Z",其中"Z...
在Android开发中,时间戳(Timestamp)是一种常用的数据类型,用于表示特定的日期和时间。时间戳通常以秒或毫秒为单位,自1970年1月1日(UTC/GMT的午夜)开始计算到现在的总秒数或毫秒数。在这个压缩包中,"Time...