一个以01纳秒为单位的时间戳,
就是一个long型的数,
其实datetime本质上就是一个long型的,通过01纳秒的单位,换算成各种时间,如果分,秒,年月日等等这些组合起来就是一个datetime类型了
python时间处理方法datetime(),下面就举几个代码案例进行说明,代码如下:
# -- coding: utf-8 --# 运行环境:Python34
#datetime类
#datetime是date与time的结合体,包括date与time的所有信息。
#它的构造函数如下:
#datetime datetime (year, month, day[ , hour[ , minute[ , second[ , microsecond[ , tzinfo] ] ] ] ] )
#各参数的含义与date、time的构造函数中的一样,要注意参数值的范围。
# 1 datetime类定义的类属性与方法:
#datetimemin、datetimemax:datetime所能表示的最小值与最大值;
#print: datetimemax: 9999-12-31 23:59:59999999
#print: datetimemin: 0001-01-01 00:00:00
from datetime import
import time
print ('datetimemax:' +str(datetimemax ))
print ('datetimemin:' +str(datetimemin))
#datetimeresolution:datetime最小单位;
#print: datetimeresolution: 0:00:00000001
print ('datetimeresolution:' + str(datetimeresolution ))
#datetimetoday():返回一个表示当前本地时间的datetime对象;
#print: today(): 2012-09-12 19:37:50721000
print ('today():' +str(datetimetoday() ))
#datetimenow([tz]):返回一个表示当前本地时间的datetime对象,如果提供了参数tz,则获取tz参数所指时区的本地时间;
#print: now(): 2012-09-12 19:37:50738000
print ('now():'+str( datetimenow() ))
#datetimeutcnow():返回一个当前utc时间的datetime对象;
#print: 2012-09-12 11:37:50739000
print ('utcnow():' +str(datetimeutcnow() ))
#datetimefromtimestamp(timestamp[, tz]):根据时间戮创建一个datetime对象,参数tz指定时区信息;
#print: fromtimestamp(tmstmp): 2012-09-12 19:37:50741000
print ('fromtimestamp(tmstmp):' +str(datetimefromtimestamp(timetime()) ))
#datetimeutcfromtimestamp(timestamp):根据时间戮创建一个datetime对象;
#print: utcfromtimestamp(tmstmp): 2012-09-12 11:37:50742000
print ('utcfromtimestamp(tmstmp):' +str(datetimeutcfromtimestamp(timetime())) )
#datetimecombine(date, time):根据date和time,创建一个datetime对象;
#print: datetimecombine(date,time): 2012-09-12 19:46:05
d = date(2012,9,12)
from datetime import
t = time(19,46,5)
print ('datetimecombine(date,time): '+str(datetimecombine(d,t)))
#datetimestrptime(date_string, format):将格式字符串转换为datetime对象;
#print: 2007-03-04 21:08:12
print (datetimestrptime("2007-03-04 21:08:12", "%Y-%m-%d %H:%M:%S"))
#2 datetime类提供的实例方法与属性
dt = datetimestrptime("2012-09-12 21:08:12", "%Y-%m-%d %H:%M:%S")
#print: 2012 9 12 21 8 12 0 None
print (dtyear)
print(dtmonth)
print(dtday)
print(dthour)
print(dtminute)
print(dtsecond)
print(dtmicrosecond)
print(dttzinfo)
print (dtdate())
print (dttime())
print (dtreplace(year = 2013))
print (dttimetuple())
print (dtutctimetuple())
print (dttoordinal())
print (dtweekday())
print (dtisocalendar())
#print dtisoformat([sep])
#datetime ctime ():返回一个日期时间的C格式字符串,等效于timectime(timemktime(dttimetuple()));
#3 格式字符串
# datetime strftime (format)
# %a 星期的简写。如 星期三为Web
# %A 星期的全写。如 星期三为Wednesday
# %b 月份的简写。如4月份为Apr
# %B月份的全写。如4月份为April
# %c: 日期时间的字符串表示。(如: 04/07/10 10:43:39)
# %d: 日在这个月中的天数(是这个月的第几天)
# %f: 微秒(范围[0,999999])
# %H: 小时(24小时制,[0, 23])
# %I: 小时(12小时制,[0, 11])
# %j: 日在年中的天数 [001,366](是当年的第几天)
# %m: 月份([01,12])
# %M: 分钟([00,59])
# %p: AM或者PM
# %S: 秒(范围为[00,61],为什么不是[00, 59],参考python手册~_~)
# %U: 周在当年的周数当年的第几周),星期天作为周的第一天
# %w: 今天在这周的天数,范围为[0, 6],6表示星期天
# %W: 周在当年的周数(是当年的第几周),星期一作为周的第一天
# %x: 日期字符串(如:04/07/10)
# %X: 时间字符串(如:10:43:39)
# %y: 2个数字表示的年份
# %Y: 4个数字表示的年份
# %z: 与utc时间的间隔 (如果是本地时间,返回空字符串)
# %Z: 时区名称(如果是本地时间,返回空字符串)
# %%: %% => %
dt = datetimenow()
#print: (%Y-%m-%d %H:%M:%S %f): 2012-09-12 23:04:27 145000
print ('(%Y-%m-%d %H:%M:%S %f): '+ str(dtstrftime('%Y-%m-%d %H:%M:%S %f')))
#print: (%Y-%m-%d %H:%M:%S %p): 12-09-12 11:04:27 PM
print ('(%Y-%m-%d %H:%M:%S %p): '+str(dtstrftime('%y-%m-%d %I:%M:%S %p')))
#print: %a: Wed
print ('%%a: %s ' % dtstrftime('%a'))
#print: %A: Wednesday
print ('%%A: %s ' % dtstrftime('%A'))
#print: %b: Sep
print ('%%b: %s ' % dtstrftime('%b'))
#print: %B: September
print ('%%B: %s ' % dtstrftime('%B'))
#print: 日期时间%c: 09/12/12 23:04:27
print ('日期时间%%c: %s ' % dtstrftime('%c'))
#print: 日期%x:09/12/12
print ('日期%%x:%s ' % dtstrftime('%x'))
#print: 时间%X:23:04:27
print ('时间%%X:%s ' % dtstrftime('%X'))
#print: 今天是这周的第3天
print ('今天是这周的第%s天 ' % dtstrftime('%w'))
#print: 今天是今年的第256天
print ('今天是今年的第%s天 ' % dtstrftime('%j'))
#print: 今周是今年的第37周
print ('今周是今年的第%s周 ' % dtstrftime('%U'))
上面代码案例运行结果如下:
atetimemax:9999-12-31 23:59:59999999datetimemin:0001-01-01 00:00:00
datetimeresolution:0:00:00000001
today():2014-05-04 15:58:18141186
now():2014-05-04 15:58:18193146
utcnow():2014-05-04 07:58:18243958
fromtimestamp(tmstmp):2014-05-04 15:58:18291558
utcfromtimestamp(tmstmp):2014-05-04 07:58:18342550
datetimecombine(date,time): 2012-09-12 19:46:05
2007-03-04 21:08:12
2012
9
12
21
8
12
0
None
2012-09-12
21:08:12
2013-09-12 21:08:12
timestruct_time(tm_year=2012, tm_mon=9, tm_mday=12, tm_hour=21, tm_min=8, tm_sec=12, tm_wday=2, tm_yday=256, tm_isdst=-1)
timestruct_time(tm_year=2012, tm_mon=9, tm_mday=12, tm_hour=21, tm_min=8, tm_sec=12, tm_wday=2, tm_yday=256, tm_isdst=0)
734758
2
(2012, 37, 3)
(%Y-%m-%d %H:%M:%S %f): 2014-05-04 15:58:19 326295
(%Y-%m-%d %H:%M:%S %p): 14-05-04 03:58:19 PM
%a: Sun
%A: Sunday
%b: May
%B: May
日期时间%c: Sun May 4 15:58:19 2014
日期%x:05/04/14
时间%X:15:58:19
今天是这周的第0天
今天是今年的第124天
今周是今年的第18周
select 表1日期1-表2日期2 as 间隔时间 from 表1,表2 where 表1跟表2的关系
或者不要条件
这种方法估计不是很好,我一般用的方法是,建立两个SqlDataReader然后在程序里面处理,
用sdr1里面的对应列减去sdr2里面的对应列,做个循环就可以,在C#中 datetime类型减去datetime类型结果是 timespan类型 例:TimeSpan ts = DateTimeNow - new DateTime(2008, 1, 1);
建议在程序中完成,SQL计算机时间要算错(只是我用的时候,高手算不算错我就不知道了)
你想获取这个时间间隔,可以在事件外做个计数器(int js=0;)和记录上次时间的变量(DateTime time;),然后在鼠标单击事件中
js++;
if(js==2)
{
TimeSpan ts=DateTimeNow-time;//ts就是结果
js=0;
}else
{
time=DateTimeNow;
}
这个只能取到1次和2次,3次和4次的间隔时间,取不到2次和3次的间隔
如果是所有点击的上次和本次时间间隔,如下
在事件外定义一个变量DateTime time=DateTimeMinValue;事件中
if(time==DateTimeMinValue)
{
time=DateTimeNow;
}else
{
TimeSpan ts=DateTimeNow-time;//ts就是结果
}
可以用DATEDIF函数计算两个日期之间的天数。
1、以excel2010版本为例,如下图所示有两个日期,要算这两个日期之间的相隔的天数;
2、首先在单元格C2输入DATEDIF公式=DATEDIF(A2,B2,"d"),按enter键即可得出A2和B2的间隔天数,其中公式中的字母“d”是指day天的意思;
3、假如C列想显示成“217天”,则可直接在公式末尾加上&"天"后按回车键就可以了;
4、再把公式下拉填充到其他行,也可计算其他日期之间的天数。
//取得某月的最后一天
//方法一:使用算出该月多少天,年+月+加上多少天即得,举例取今天这个月的最后一天
private void GetLastDateForMonth(DateTime DtStart, out DateTime DtEnd)
{
int Dtyear, DtMonth;
DtStart = DateTimeNow;
Dtyear = DtStartYear;
DtMonth = DtStartMonth;
int MonthCount = DateTimeDaysInMonth(Dtyear, DtMonth);//计算该月有多少天
DtEnd = ConvertToDateTime(DtyearToString() + "-" + DtMonthToString() + "-" + MonthCount);
}
//方法二:取出下月的第一天减去一天便是这个月的最后一天
private void GetLastDateForMonth(DateTime DtStart, out DateTime DtEnd)
{
int Dtyear, DtMonth;
DtStart = DateTimeNowAddMonths(1);//月份加1
Dtyear = DtStartYear;
DtMonth = DtStartMonth;
DtEnd = ConvertToDateTime(DtyearToString() + "-" + DtMonthToString() + "-" + "1")AddDays(-1);//取出下月的第一天减去一天
}
二、时间差的计算
法一、使用TimeSpan ,同时也介绍一下TimeSpan的用法
相关属性和函数
Add:与另一个TimeSpan值相加。
Days:返回用天数计算的TimeSpan值。
Duration:获取TimeSpan的绝对值。
Hours:返回用小时计算的TimeSpan值
Milliseconds:返回用毫秒计算的TimeSpan值。
Minutes:返回用分钟计算的TimeSpan值。
Negate:返回当前实例的相反数。
Seconds:返回用秒计算的TimeSpan值。
Subtract:从中减去另一个TimeSpan值。
Ticks:返回TimeSpan值的tick数。
TotalDays:返回TimeSpan值表示的天数。
TotalHours:返回TimeSpan值表示的小时数。
TotalMilliseconds:返回TimeSpan值表示的毫秒数。
TotalMinutes:返回TimeSpan值表示的分钟数。
TotalSeconds:返回TimeSpan值表示的秒数。
简单示例:
DateTime d1 =new DateTime(2004,1,1,15,36,05);
DateTime d2 =new DateTime(2004,3,1,20,16,35);
TimeSpan d3 = d2Subtract(d1);
LbTimeText = "相差:"
+d3DaysToString()+"天"
+d3HoursToString()+"小时"
+d3MinutesToString()+"分钟"
+d3SecondsToString()+"秒";
法二、使用Sql中的DATEDIFF函数
使用方法:DATEDIFF ( datepart , startdate , enddate )
它能帮你取出你想要的各种形式的时间差,如相隔多少天,多少小时,多少分钟等,具体格式如下:
日期部分缩写
year yy, yyyy
quarter qq, q
Month mm, m
dayofyear dy, y
Day dd, d
Week wk, ww
Hour hh
minute mi, n
second ss, s
millisecond ms
如:datediff(mi,DtOpTime,DtEnd) 便能取出他们之间时间差的分钟总数,已经帮你换算好了,对于要求规定单位,时、分、秒特别有用
三 计算两个日期之间相差的工作日天数(转载:>
以上就是关于易语言里怎么实现C#中的DateTime.Now.Ticks.ToString()全部的内容,包括:易语言里怎么实现C#中的DateTime.Now.Ticks.ToString()、python datetime处理时间、SQL中怎样得出两个DATATIME类型相差的时间等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)