文档库 最新最全的文档下载
当前位置:文档库 › PHP时间戳和日期相互转换.doc

PHP时间戳和日期相互转换.doc

PHP时间戳和日期相互转换.doc
PHP时间戳和日期相互转换.doc

PHP时间戳和日期相互转换

PHP 时间戳和日期相互转换

在php中我们要把时间戳转换日期可以直接使用date函数来实现,如果要把日期转换成时间戳可以使用strtotime()函数实现,下面我来给大家举例说明。

1.php中时间转换函数

strtotime

(date())

date("Y-m-d H:i",$unixtime)

2.php中获得今天零点的时间戳要获得零点的unix时间戳,可以使用

$todaytime=strtotime(“today”),

然后再使用

如何获取本周,本月,本日的开始时间和结束时间的时间戳

获取本日,本周,本月的开始时间戳和结束时间戳 这是我最近尝试写的一个程序,可能有许多不足之处,还请见谅。 这是一个类,类里面主要有两个方法。 一个是timeToTimestamp (),一个是getTime()。 前者负责将时间转化成时间戳,后者则负责判断filter值,然后设置相应的date时间。 注:filter=1 代表本日,filter=2 代表本周,filter=3代表本月。 class TimestampUtils{ private static long startTime = -1; private static long endTime = -1; public static void getTime (int filter){ Calendar cal =Calendar.getInstance(); SimpleDateFormat format = new SimpleDateFormat( "yyyy-MM-dd" ); //设置星期一为一周的开始日 cal.setFirstDayOfWeek(Calendar.MONDAY); switch(filter){ case 1://今天 startTime = timeToTimestamp(format.format(new Date())+" 00:00: 00"); endTime = timeToTimestamp(format.format(new Date())+" 23:59: 59");

break; case 2://本周 cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); startTime = timeToTimestamp(format.format(cal.getTime())+" 00:0 0:00"); cal.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY); endTime = timeToTimestamp(format.format(cal.getTime())+" 23:5 9:59"); break; case 3://本月 cal.set(Calendar.DATE, cal.getActualMinimum(Calendar.DATE)); startTime = timeToTimestamp(format.format(cal.getTime())+" 00:0 0:00"); cal.set(Calendar.DATE, cal.getActualMaximum(Calendar.DATE)) ; endTime = timeToTimestamp(format.format(cal.getTime())+" 23:5 9:59"); break; default: break; } }

把Oracle 字符串转换成TIMESTAMP类型的方案

使用Oracle函数: TO_TIMESTAMP_TZ('2009-3-9 17:51:23.23 -05:00', 'YYYY-MM-D HH24:MI:SS.FF TZH:TZM') TO_DATE(yourdate,'YYYY-MM-D HH24:MI:SS'); 字符串转日期Date T0_CHAR(yourdate,'YYYY-MM-D HH24:MI:SS'); 日期Date转字符串 eg: update t_fl_flownote set sendtime=TO_TIMESTAMP_TZ('2009-11-30 10:47:16','YYYY-MM-DD HH24:MI:SS') 转别人的日志 我们都知道date和timestamp都是对日期和时间的表示,只是两种类型的精确度不同,前者精确到秒,后者精确到小数秒(fractional_seconds_precision),可以是 0 to 9,缺省是6。 Oracle 字符串转换但是对date类型的运算很简单,有很多函数可用来处理;而两个timestamp的差则是很直观地显示为多少天+多少小时+多少分钟+多少秒+多少小数秒,SQL> create table test (T1 TIMESTAMP(6), 2 T2 TIMESTAMP(6)); 表已创建。 SQL> insert into test values( 2 to_timestamp('2006-01-01 12:10:10.1','yyyy-mm-dd hh24:mi:ss.ff'), 3 to_timestamp('2006-01-01 12:20:10.2','yyyy-mm-dd hh24:mi:ss.ff')); 已创建 1 行。 SQL> SQL> insert into test values( 2 to_timestamp('2006-01-01 12:10:10.1','yyyy-mm-dd hh24:mi:ss.ff'), 3 to_timestamp('2006-01-02 12:20:10.2','yyyy-mm-dd hh24:mi:ss.ff')); 已创建 1 行。

unix时间戳与datetime类型时间之前的转换

unix时间戳与datetime类型时间之前的 转换 问题:unix时间戳与datetime类型时间之前的转换回答: #region 日期转换数字 /// /// 将Unix时间戳转换为DateTime类型时间 /// ///double 型数字/// DateTime public static System.DateTime ConvertIntDateTime(double d) System.DateTime time = System.DateTime.MinValue; System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1)); time = startTime.AddSeconds(d); return time; /// /// 将c# DateTime时间格式转换为Unix时间戳格式 /// ///时间/// double

public static double ConvertDateTimeInt(System.DateTime time) double intResult = 0; System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1)); intResult = (time startTime).TotalSeconds; return intResult; #endregion

如何实现时间戳转换

版式阅读软件,云签章,可信时间戳 如何实现时间戳转换 如何实现时间戳转换。以前遇到过一个关于时间戳的问题,为了要大家更明白,先说一下概念。 具体时间戳怎么定义的我也不清楚,但百度百科中有这么一句:“时间戳是自 1970 年 1 月 1 日(00:00:00 GMT )至当前时间的总秒数”。 按这个定义,编程语言中倒是有一种类似的函数,getTime(),但这个函数返回的是自1970年1月1日到当前时间的总 毫秒数 ,而不是总 秒数。 在js 中,将一个字符转化成Date 型也不是什么难事: var str = '2013-08-30'; // 日期字符串 str = str.replace(/-/g,'/'); // 将-替换成/,因为下面这个构造函数只支持/分隔的日期字符串。

var date = new Date(str); // 构造一个日期型数据,值为传入的字符串。 在上面,new Date(str)构造了一个日期,参数str至少要提供年月日三部分,也就是形如“2013/03/08”的字符串,不能是"2013/03",否则将得到一个NaN。此时构造出来的时间是:2013/03/08 00:00:00。同时你还可以传入小时、分钟和秒数,但不能只传入小时,比如“2013/03/08 17”,这样的参数同样会得到一个NaN。参数可以是“2013/03/08 17:20”或者“2013/03/08 17:20:05”,这样都可以得到正确的时间,其中如果秒数没给出,则默认为0。 此时得到的是日期型数据,如果要得到上面所谓的时间戳,可以这样: var time = date.getTime(); 版式阅读软件,云签章,可信时间戳

PowerQuery技巧之Unix时间戳转换

Unix时间戳转换 Unix时间戳(Unix timestamp),或称Unix时间(Unix time)、POSIX时间(POSIX time),是一种时间表示方式,定义为从格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。Unix时间戳不仅被使用在Unix 系统、类Unix系统中,也在许多其他操作系统中被广泛采用。 有些从系统导出或网抓的数据,时间为时间戳格式,Power Query并没有直接的函数对其转换,但可以通过自定义函数实现。 let timestamp = (x)=>#datetime(1970,1,1,8,0,0)+#duration(0,0,0,x), time = timestamp(1502374503) in time 公式非常简单,duration表示持续时间,直接加上起始的北京时间。 而有些语言的时间戳是13位的,比10位的精度更高一些,高在后3位。但是精不精度和我们没什么关系,我们不需要,把后三位去掉即可。 let timestamp = (x)=>#datetime(1970,1,1,8,0,0)+#duration(0,0,0,Number.IntegerDivide(x/1000,1)), time = timestamp(1502353621929) in time 如果是反过来,要把时间转换为时间戳呢? 那就先用时间减去初始时间,然后转换为总秒数,结果可能为小数,最后再取个整。以求当前时间的时间戳为例:let time = (x)=> Number.IntegerDivide(Duration.TotalSeconds(x-#datetime(1970,1,1,8,0,0)),1), timestamp = time(DateTime.LocalNow()) in timestamp

ffmpeg时间戳问题汇总

ffmpeg时间戳问题汇总 A:RFC3984 规定采用 90000 Hz 的时钟,因此如果编码帧频是 30,那么时间 戳间 隔就该是 90000 / 30 3000,根据抓包来看,似乎时间戳间隔的确是 3000。 时间戳 的间隔不固定,比如有的时间戳间隔是 2990 有的是 3002,会导致解析出来的视 频快播的效果么Q:各位大侠好:我现在正在开发视频实时流播放,简单的过程 如 下:采集视频流 - 视频流转换为 Sorenson H.263 编码格式 - 把编码的实时 流通过 RTMP 协议发送 - flash 客户端进行播放。现在我的时间戳颗粒是这样生成的:第 一帧的时间戳为 0;第二帧的时间戳的算法为:第一个字符编码的当前时间 - 上一 帧第一个字符编码的当前时间根据这个时间颗粒的算法,我在 flash 客户端 播放就 会产生延时。请问各位大侠有什么好的建议或是文档之类的,以前 firstime 管管建 议我看 RFC4629 文档,但是效果不太明显,谢谢~A;时间戳顺序累加就行了,每次加 1Q:最近做了一个捕捉摄像头并保存 FLV 的小东西,发现转换完毕后 的

FLV 文件,用播放器播放的时候,速度特别快,大概是正常速度的 4 倍。请问这 是怎么回事,网上搜了一下,说是时间戳的问题,可是 PTS 我跟了,AVPacket 的 PTS 是每帧增长 40,time_base 为: 25/s.。DTS 是个无效值。PTS 的计算是根据 ffmpeg 的例子写的。pkt.pts av_rescale_qoAcc-coded_frame-pts oAcc-time_base audio_st-time_base1. dts 到底需不需要自己计算,2. 还有播放速度过快的可能原 因,3. 还有 PTS 和 DTS 的具体含义,int64_t pts /// presentation time stamp in time_base unitsint64_t dts /// decompression time stamp in time_base units上面的意思 是不是说,播放器根据 PTS 进行播放。然后 DTS 是在编码的时候自己设置,刚 用 ffmpeg,好些东西不懂,还请大侠多多指教------刚才又试了一下,把time_base 降 为 10 帧每秒。播放速度和正常速度接近。但是不知道 FLV 文件的帧率该设置多 少合适。有没有一个权威的说法。A:我也做摄像头捕捉,跟你出现一样的问题,我 自己分析的话,应该是捕捉摄像头的图像的速度只有 10 帧每秒,但是保存成视频 25 帧每秒的话播放看起来就非常快,但是我摄像头捕捉设定的是 25 帧每秒,难道

数据转移方案-时间戳方式

数据转移方案 ——时间戳方式 文档修订记录 更改类型:*S – START A - ADDED M - MODIFIED D - DELETED

1. 目的 随着医院业务的发展,医院业务产生的数据量与日俱增,医院几年内产生的数据都存储在现有HIS业务数据库中,业务数据库负荷不断增大,一张业务表甚至会存储几百万条记录,这造成业务应用过程中检索数据速度太慢,直接影响了医院的效率。 为减轻现有业务数据库的压力,提高医院运行效率,现提出建立一套历史数据库,将现有业务数据库中过期的数据转移到历史库,减少业务库的数据量,提高HIS系统的运行效率;另一方面,为减轻报表查询对业务操作的影响,分离业务操作和报表查询关联数据库,业务查询关联业务数据库,报表查询关联历史数据库,历史库需要满足对数据的实时查询的需求,必须保持业务库数据与历史库数据的同步。另外,历史数据库在满足业务库转移数据需求的同时,还要遵循一定的标准和规则,为后期的数据挖掘和决策支持提供基础。

2. 转移方案 根据转移方式的不同,业务库与历史库之间的数据转移可以分两个阶段:初始化转移和增量转移。初始化转移采用全量抽取的方式(也可看作时间戳方式),抽取一定时间戳前所有的数据,增量转移采用基于时间戳的增量抽取方式,抽取一定时间戳区间的数据。 采用上述转移方案,需要在现有业务库表中添加时间戳字段。抽取原理如下: 【备注】: SQL Server中提供的timestamp数据类型是二进制数字,它是数据库中自动生成的唯一二进制数字。timestamp通常用作给表行加版本戳的机制。存大小为8个字节。Timestamp数据类型只是递增的数字,不保留日期或时间。 Timestamp是单个数据库的计数器,不是服务器的计数器。 每个数据库都有一个计数器,当对数据库中包含timestamp 列的表执行插入或更新操作时,该计数器值就会增加。该计数器是数据库时间戳。这可以跟踪数据库内的相对时间,而不是时钟相关联的实际时间。一个表只能有一个timestamp 列。每次修改或插入包含timestamp 列的行时,就会在timestamp 列中插入增量数据库时间戳值。这一属性使timestamp 列不适合作为键使用,尤其是不能作为主键使用。对行的任何更新都会更改timestamp 值,从而更改键值。如果该列属于主键,那么旧的键值将无效,进而引用该旧值的外键也将不再有效。如果该表在动态游标中引用,则所有更新均会更改游标中行的位置。如果该列属于索引键,则对数据行的所有更新还将导致索引更新。

jquery中实现时间戳与日期相互转换

本文主要利用jquery扩展写了一个myTime对象,并写了2个函数分别处理日期和时间戳之间的相互转换。 直接看代码: 提醒:不要忘记了引用jquery的类库 (function($) {   $.extend({     myTime: {       /**        * 当前时间戳        * @return <int>    unix时间戳(秒)         */       CurTime: function(){         return Date.parse(new Date())/1000;       },       /**               * 日期转换为Unix时间戳        * @param <string> 2014-01-01 20:20:20 日期格式              * @return <int>    unix时间戳(秒)               */       DateToUnix: function(string) {         var f = string.split(' ', 2);         var d = (f[0] ? f[0] : '').split('-', 3);         var t = (f[1] ? f[1] : '').split(':', 3);         return (new Date(             parseInt(d[0], 10) || null,             (parseInt(d[1], 10) || 1) - 1,             parseInt(d[2], 10) || null,             parseInt(t[0], 10) || null,             parseInt(t[1], 10) || null,             parseInt(t[2], 10) || null             )).getTime() / 1000;       },       /**               * 时间戳转换日期              * @param <int> unixTime  待时间戳(秒)               * @param <bool> isFull  返回完整时间(Y-m-d 或者Y-m-d H:i:s)               * @param <int> timeZone  时区      

java 中时间戳的运用

java 中时间戳的运用 概念: System.currentTimeMillis() :返回当前系统的毫秒数,由于取得的是毫秒数,所以在处理UNIX 时间戳的时候需要转换成秒 也就是: long epoch = System.currentTimeMillis()/1000; 方法: 1、获取当前系统的UNIX时间戳 System.out.println("获取系统毫秒数方法1:"+Long.toString(new Date().getTime())); System.out.println("获取系统毫秒数方法2:"+Long.toString(System.currentTimeMillis())); 注意:以上代码获取的都是系统毫秒数,在实际的操作中我们一般都是记录毫秒说以求记录的精度,当处理UNIX时间戳的时候需要把数据进行处理。 2、将UNIX时间戳转换成系统可以处理的时间 System.out.println(""+new java.text.SimpleDateFormat("yyyy MM-dd HH:mm:ss").format(new java.util.Date (1215782027390L))); 输出:2008 07-11 21:13:47 注意:此时处理的数据为系统毫秒不是UNIX时间戳 3、讲时间转换成UNIX时间戳 long epoch = new java.text.SimpleDateFormat ("dd/MM/yyyy HH:mm:ss").parse("09/22/2008 16:33:00").getTime(); 获取当前的unix时间戳 new Date().getTime()/1000 System.currentTimeMillis()/1000 返回的是毫秒数,要/1000; 获取当前年月日以及时分秒 Calendar c = Calendar.getInstance(); c.get(Calendar.YEAR)) c.get(Calendar.YEAR)) c.get(Calendar.DATE) 将UNIX时间戳转换成时间字符串 new SimpleDateFormat("yyyy/MM/dd").format(new Date(timestamp*1000)); 将时间字符串转换成UNIX时间戳 new java.text.SimpleDateFormat (”dd/MM/yyyy HH:mm:ss”).parse(”09/22/2008 16:33:00″).getTime()/1000 把当前时间加2周 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

ffmpeg时间戳

FFmpeg里有两种时间戳:DTS(Decoding Time Stamp)和PTS(Presentation Time Stamp)。顾名思义,前者是解码的时间,后者是显示的时间。要仔细理解这两个概念,需要先了解FFmpeg中的packet和frame的概念。 FFmpeg中用AVPacket结构体来描述解码前或编码后的压缩包,用AVFrame结构体来描述解码后或编码前的信号帧。对于视频来说,AVFrame就是视频的一帧图像。这帧图像什么时候显示给用户,就取决于它的PTS。DTS是AVPacket里的一个成员,表示这个压缩包应该什么时候被解码。如果视频里各帧的编码是按输入顺序(也就是显示顺序)依次进行的,那么解码和显示时间应该是一致的。可事实上,在大多数编解码标准(如H.264或HEVC)中,编码顺序和输入顺序并不一致。于是才会需要PTS和DTS这两种不同的时间戳。 FFmpeg里有两种时间戳:DTS(Decoding Time Stamp)和PTS(Presentation Time Stamp)。顾名思义,前者是解码的时间,后者是显示的时间。要仔细理解这两个概念,需要先了解FFmpeg中的packet和frame的概念。 FFmpeg中用AVPacket结构体来描述解码前或编码后的压缩包,用AVFrame结构体来描述解码后或编码前的信号帧。对于视频来说,AVFrame就是视频的一帧图像。这帧图像什么时候显示给用户,就取决于它的PTS。DTS是AVPacket里的一个成员,表示这个压缩包应该什么时候被解码。如果视频里各帧的编码是按输入顺序(也就是显示顺序)依次进行的,那么解码和显示时间应该是一致的。可事实上,在大多数编解码标准(如H.264或HEVC)中,编码顺序和输入顺序并不一致。于是才会需要PTS和DTS这两种不同的时间戳。 视频的显示和存放原理 对于一个电影,帧是这样来显示的:I B B P。现在我们需要在显示B帧之前知道P帧中的信息。因此,帧可能会按照这样的方式来存储:IPBB。这就是为什么我们会有一个解码时间戳和一个显示时间戳的原因。解码时间戳告诉我们什么时候需要解码,显示时间戳告诉我们什么时候需要显示。所以,在这种情况下,我们的流可以是这样的: PTS: 1 4 2 3 DTS: 1 2 3 4 Stream: I P B B 通常PTS和DTS只有在流中有B帧的时候会不同。 DTS和PTS 音频和视频流都有一些关于以多快速度和什么时间来播放它们的信息在里面。音频流有采样,视频流有每秒的帧率。然而,如果我们只是简单的通过数帧和乘以帧率的方式来同步视频,那么就很有可能会失去同步。于是作为一种补充,在流中的包有种叫做DTS(解码时间戳)和PTS(显示时间戳)的机制。为了这两个参数,你需要了解电影存放的方式。像MPEG等格式,使用被叫做B帧(B表示双向bidrectional)的方式。另外两种帧被

Python3时间戳转换为指定格式的日期

Python3时间戳转换为指定格式的日期 在写Python 的时候经常会遇到时间格式的问题,首先就是最近用到的时间戳(timestamp )和时间字符串之间的转换。所谓时间戳,就是从 1970年1月1日 00:00:00 到现在的秒数。原来我也写过关于python3里面如何进行时间转换。 在Python 里,时间戳可以通过 time 模块里的 time() 方法获得,比如: 1 2 3 import time timestamp = time.time() print (timestamp) 输出结果: 1 1551077515.952753 这个数可以这么理解, 小数点前面的是从1970年1月1日 00:00:00 到现在的秒数, 小数点后面是微秒的计数。 这个时间戳不容易记忆和理解, 所以我们希望把它转换成人容易理解的时间格式,时间戳转换为指定格式的日期,常用到的模块是time 和datetime 。 方法1:使用time 模块 1 2 3 4 5 import time timeStamp = 1551077515 timeArray = time.localtime(timeStamp) formatTime = time.strftime("%Y-%m-%d %H:%M:%S", timeArray) print (formatTime) 结果: 1 2019-02-25 14:51:55

方法2:使用datetime 模块 1 2 3 4 5 import datetime timeStamp = 1551077515 timeArray = datetime.datetime.utcfromtimestamp(timeStamp) formatTime = timeArray.strftime("%Y-%m-%d %H:%M:%S") print (formatTime) 结果: 1 2019-02-25 14:51:55 得到的结果是完全一样的, 这里time 和datetime 都可以把时间戳转换为指定时间格式, 但是他们俩还是有区别的, 总体来讲time 比datetime 更偏底层,我专门写过一篇文章来介绍time 和datetime 的区别和联系。

mysql 日期操作 增减天数、时间转换、时间戳

MySQL datediff(date1,date2):两个日期相减date1 - date2,返回天数。 select datediff('2008-08-08', '2008-08-01'); -- 7 select datediff('2008-08-01', '2008-08-08'); -- -7 一、MySQL 获得当前日期时间函数 1.1 获得当前日期+时间(date + time)函数:now() mysql> select now(); +---------------------+ | now() | +---------------------+ | 2008-08-08 22:20:46 | +---------------------+ 除了now() 函数能获得当前的日期时间外,MySQL 中还有下面的函数: current_timestamp() ,current_timestamp ,localtime() ,localtime ,localtimestamp -- (v4.0.6) ,localtimestamp() -- (v4.0.6) 这些日期时间函数,都等同于now()。鉴于now() 函数简短易记,建议总是使用now() 来替代上面列出的函数。 1.2 获得当前日期+时间(date + time)函数:sysdate() sysdate() 日期时间函数跟now() 类似,不同之处在于:now() 在执行开始时值就得到了,sysdate() 在函数执行时动态得到值。看下面的例子就明白了: mysql> select now(), sleep(3), now(); +---------------------+----------+---------------------+ | now() | sleep(3) | now() | +---------------------+----------+---------------------+ | 2008-08-08 22:28:21 | 0 | 2008-08-08 22:28:21 | +---------------------+----------+---------------------+ mysql> select sysdate(), sleep(3), sysdate();

C#的时间戳转换

C#的时间戳转换 1、将XML中的个时间戳转换成日期格式: XmlNodeList cNodes = xncomment.SelectNodes("comment"); foreach (XmlNode node in cNodes) { //I'm getting this "1372061224000" in comment-date string comment_date = node["creation-timestamp"].InnerText; } var dt = new DateTime(1970, 1, 1, 0, 0, 0, 0).AddSeconds(Math.Round(1372061224000 / 1000d)).ToLocalTime(); Console.WriteLine(dt); // Prints: 6/24/2013 10:07:04 AM 2、将Unix时间戳转换为DateTime类型时间 /// double 型数字 /// DateTime public static System.DateTime ConvertIntDateTime(double d) { System.DateTime time = System.DateTime.MinValue; System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1)); time = startTime.AddMilliseconds(d); return time; } 3、将c# DateTime时间格式转换为Unix时间戳格式 /// 时间 /// long public static long ConvertDateTimeInt(System.DateTime time) { //double intResult = 0; System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970,1,1,0,0,0,0)); //intResult = (time- startTime).TotalMilliseconds; long t = (time.Ticks - startTime.Ticks)/10000; //除10000调整为13位 return t;

简道云函数举例-将日期控件转换成 XXXX-XX-XX的格式

简道云函数举例-将日期控件转换成 XXXX-XX-XX的格式第三个例子将产生一点点难度,难度在于,用户对时间格式的理解。 简道云中的日期时间控件,在计算机中的计算格式是“时间戳”。什么是“时间戳”?

如上图所示,对日期时间控件取值的时候,得到的是13位的数字。这就是时间戳的表达 形式时间戳是以毫秒为单位,每逢秒,分,时,日,月,年进位的数值。以1970年1月 1日世界时间0:00:00为0值的数值。早于这个时间的时间戳为负,晚于这个时间的为正。可能比较难理解,如果暂时理解不了,只要记住如果要对“日期时间控件做函数”,要用TIMESTAMP()函数把计算的结果框起来,赋给时间日期,即可返回结果。 说了这么多强调时间戳的目的是什么呢?我们计算日期时间的函数,是以时间对象为基础的。时间对象的表达形式有多种,可以参考帮助文档。所以在对日期控件进行计算的时候,要先把时间戳转换成时间对象,再进行计算。我们来做一做这个函数: 要用到的函数: DATE() 把日期时间(时间戳)转换成时间对象 YEAR() 取出时间对象中的年份

MONTH() 取出时间对象中的月份 DAY() 取出时间对象中天数 CONCATENATE() 连接函数,把分拆提取的年、月、日和短线符号“-”连接起来, 简称CON函数 下面还有几个函数是用来增加1-9月和1-9日前面的0的,就是01月01日。 RIGHT(a,b) 从字符串a的右边取字符,取b个 TEXT() 把数字格式变成文本格式(VALUE()的反函数) 那么我们这个函数该怎么写呢? YEAR(DATE(时间日期)) MONTH(DATE(时间日期)) DAY(DATE(时间日期)) 这三个式子已经将年月日分别取出来了,用CON函数连接为: CONCATENATE(YEAR(DATE(时间日期)),'-',MONTH(DATE(时间日 期)),'-',DAY(DATE(时间日期))) 这个式子这么写就已经可以应用了,单引号引用的是英文字符或英文符号。我们看看效果:

c#时间戳使用说明

时间戳或称Unix时间戳(Unix TimeStamp) 是从1970年1月1日开始计算的,即计算时间到1970年1月1日0时(北京时间8时)的总秒数。 在此补充一个小知识:为什么计算机时间和众多编程语言要从1970年1月1日开始算起?在此有2种解释,最懒的解释是很多编程语言起源于UNIX系统,而UNIX系统认为1970年1月1日0点是时间纪元,所以为我们常说的UNIX时间戳是以1970年1月1日0点为计时起点时间的;深入的解释是最初计算机操作系统是32位,而时间也是用32位表示。Integer 在JAVA内用32位表示,因此32位能表示的最大值是2147483647。另外1年365天的总秒数是31536000,2147483647/31536000 = 68.1,也就是说32位能表示的最长时间是68年,从1970年开始的话,加上68.1,实际最终到2038年01月19日03时14分07秒,便会到达最大时间,过了这个时间点,所有32位操作系统时间便会变为10000000 00000000 00000000 00000000,算下来也就是1901年12月13日20时45分52秒,这样便会出现时间回归的现象,很多软件便会运行异常了。 到这里,我想问题的答案已经显现出来了,那就是:因为用32位来表示时间的最大间隔是68年,而最早出现的UNIX操作系统考虑到计算机产生的年代和应用的时限综合取了1970年1月1日作为UNIX TIME的纪元时间(开始时间),至于时间回归的现象相信随着64为操作系统的产生逐渐得到解决,因为用64位操作系统可以表示到292,277,026,596年12月4日15时30分08秒,相信我们的N代子孙,哪怕地球毁灭那天都不用愁不够用了,因为这个时间已经是千亿年以后了。 c#时间戳 c#的时间戳却是13位的,那么我们处理的时候的代码如下: 将时间转换为时间戳: //将时间转换为时间戳 private long ConvertDateTimeToTimeStamp(DateTimetargetTime) { DateTimestartTime = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1)); longtsa = (targetTime.Ticks - startTime.Ticks) / 10000;

时间戳转化成标准时间

元数据起始 view 时间戳练习 编写一个程序从标准输入一个UNIX 时间戳,转换成yyyy/MM/dd HH:mm:ss 格式打印在标准输出设备上,如下所示: ? 1 2 3 input a timestamp: 1426601583 date time:2015/03/17 22:13:03 如果输入的内容不符合要求,则提示“Error Input”,程序退出。如下所示: ? 1 2 3 input a timestamp: 1426601583999 Error Input Icon 注意: 1. 最后没有换行。 2. "input a timestamp:"后有一个换行 3. 输入内容后存在一个换行 import java.util.Scanner; public class D0008 { public static void main(String[] args){ System.out.println("input a timestamp:"); Scanner input=new Scanner(System.in); try{ int num1=input.nextInt(); String num= Integer.toString(num1); System.out.print("date time:"+TimeStamp2Date(num)); }catch(Exception e){ System.out.print("Error Input"); } } public static String TimeStamp2Date(String timestampString){ Long timestamp = Long.parseLong(timestampString)*1000; String date = new java.text.SimpleDateFormat("yyyy/MM/dd HH:mm:ss").format(new java.util.Date(timestamp)); return date; }

C# 时间戳转换为普通时间

C# 时间戳转换为普通时间 // 时间戳转为C#格式时间 private DateTime StampToDateTime(string timeStamp) {DateTime dateTimeStart = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1)); long lTime = long.Parse(timeStamp + "0000000"); TimeSpan toNow = new TimeSpan(lTime); return dateTimeStart.Add(toNow);} // DateTime时间格式转换为Unix时间戳格式 private int DateTimeToStamp(System.DateTime time) {System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1)); return (int)(time - startTime).TotalSeconds;} //获取日期+时间 DateTime.Now.ToString(); // 2008-9-4 20:02:10 DateTime.Now.ToLocalTime().ToString(); // 2008-9-4 20:12:12 //获取日期 DateTime.Now.ToLongDateString().ToString(); // 2008年9月4日 DateTime.Now.ToShortDateString().ToString(); // 2008-9-4 DateTime.Now.ToString("yyyy-MM-dd"); // 2008-09-04 DateTime.Now.Date.ToString(); // 2008-9-4 0:00:00 //获取时间 DateTime.Now.ToLongTimeString().ToString(); // 20:16:16 DateTime.Now.ToShortTimeString().ToString(); // 20:16

相关文档
相关文档 最新文档