练手——用Python写的时间戳转换为北京时间的小工具
#北京时间需加上8小时
bj = 8*3600
def time_stamp(times):
#一天总秒数
nonDaySeconds = 24*3600
leapmonths = [31,29,31,30,31,30,31,31,30,31,30,31]
nonleapmonths = [31,28,31,30,31,30,31,31,30,31,30,31]
#四年为一个周期,从1972年开始
fourYearDays = (366+365+365+365)
year = 0
currentDays = 0
sumDay = 0
month = 0
#计算自1970年以来经过的天数
nDays = int(times/nonDaySeconds)
#计算当天已经过了多少毫秒
currentDaySeconds = times%nonDaySeconds
#计算自1973年以来经过的多少个完整4年周期,并计算上一个闰年是哪一年
lastLeapYear = int((nDays-(365+365+366))/fourYearDays)*4+(1970+2)
#计算不足一个4年周期的天数
lDays = (nDays-(365+365+366))%fourYearDays
#print(lastLeapYear,lDays)
#判断当前属于四年周期的哪一年,并计算当年已经走过的总天数
if lDays < 365:
year = 1
currentDays = lDays
elif lDays< (365+365):
year = 2
currentDays = lDays - 365
elif lDays < (365+365+365):
year = 3
currentDays = lDays - 365 - 365
elif lDays < (365+365+365+366):
year = 4
currentDays = lDays - 365 - 365 - 365
currentYear = lastLeapYear + year
#print(currentYear,currentDays)
#计算几月几号
if year == 4:
#如果是闰年
for i in range(len(leapmonths)):
if sumDay <= currentDays:
sumDay += leapmonths[i]
month += 1
day = (currentDays - sumDay + 1) + leapmonths[month-1]
else:
for i in range(len(nonleapmonths)):
if sumDay <= currentDays:
sumDay += nonleapmonths[i]
month += 1
day = (currentDays - sumDay + 1) + nonleapmonths[month-1]
#print(month,day)
#计算时分秒
currentHour = int(currentDaySeconds/(60*60))
currentMinute = int((currentDaySeconds%(60*60))/60)
currentSeconds = (currentDaySeconds%(60*60))%60
#print(currentHour,currentMinute,currentSeconds)
print(str(currentYear)+' 年 '+judgetime(month)+' 月 '+judgetime(day)+' 日 '+
judgetime(currentHour)+':'+judgetime(currentMinute)+':'+judgetime(currentSeconds))
def judgetime(value):
if value < 10:
return '0' + str(value)
else:
return str(value)
练手——用Python写的时间戳转换为北京时间的小工具的更多相关文章
- 用Python写一个向数据库填充数据的小工具
一. 背景 公司又要做一个新项目,是一个合作型项目,我们公司出web展示服务,合作伙伴线下提供展示数据. 而且本次项目是数据统计展示为主要功能,并没有研发对应的数据接入接口,所有展示数据源均来自数据库 ...
- python(6)时间戳和北京时间互转,输出当前的时间和推到七天前的日期
项目发展的需要:(包含时间函数)time datetime 时间戳和北京时间互转 import time import datetime s = '2015-04-17 11:25:30' d = d ...
- JavaScript把客户端时间转换为北京时间
写在前面 写了一遍又一遍,网页老卡住,没保存下来,不写了. 时间转换代码 //获得北京时间 Date.prototype.getBJDate = function () { //获得当前运行环境时间 ...
- Python 将时间戳转换为本地时间并进行格式化
在python中,时间戳默认是为格林威治时间,而我们为东八区 使用localtime() 本地化时间戳 使用 strftime() 格式化时间戳 time = time.strftime('%Y%m% ...
- 几个非常适合练手的python爬虫项目,总有一个能搞定!
前言本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理.作者:Python玩家 注意:如果你平时学Python有问题找不到人解答,可以 ...
- 有哪些适合新手练手的Python项目?
http://blog.csdn.net/Lina_ACM/article/details/54581721
- 用Python写了个下载快手视频的小脚本
最近又重新拾起了,对python的热情. 贴个地址: https://github.com/d1y/lovepack/blob/master/kuaishou.py 前戏说明 因为我近乎癫狂的喜欢一个 ...
- Python写一个Windows下的android设备截图工具
界面版 利用python的wx库写个ui界面,用来把android设备的截图输出到电脑屏幕,前提需要安装adb,涉及到的python库也要安装.代码如下: import wx,subprocess,o ...
- 使用js将Unix时间戳转换为普通时间
var unixtime=1358932051;formatTime (time) { let unixtime = time let unixTimestamp = new Date(unixtim ...
随机推荐
- (73)Wangdao.com第十二天_JavaScript consol 对象与控制台
consol 对象 console对象是 JavaScript 的原生对象 它有点像 Unix 系统的标准输出stdout和标准错误stderr, 可以输出各种信息到控制台,并且还提供了很多有用的辅助 ...
- (91)Wangdao.com第二十四天_Mutation Observer API 突变监视器
Mutation Observer API 突变监视接口 用来监视 DOM 变动. DOM 的任何变动,比如节点的增减.属性的变动.文本内容的变动,这个 API 都可以得到通知 概念上,它很接近事件, ...
- 【函数式编程】reducer为什么叫reducer
最近学习前端的技术,在了解react对DOM的组件抽象,但不提供整体的组件通讯时候,了解了redux,然后就是react-redux: 抽象后,视图完全由对象决定,而用户只能接触视图,所以对象的改变必 ...
- thinkphp框架,数据动态缓存后,或数据已读取出来,想分页怎么办
//读取缓存后赋值到数组,通过array_slice函数处理,如: $blog = S('blogname'); //赋值 $count = count($blog); //条数统计 $page = ...
- 源码包安装maven
含有的命令:cd,tar,mv,vim,sourc,mvnpv [root@ycj ~]# cd /usr/local/src/ //切换路径 [root@ycj src]# wget http:// ...
- js 讲解
substring() 取文本中间 split() 分割文本 charcodeat() utf-8 tolowercase() 小写 正则是一个对象 正则 i 不区分大小写 escape(s ...
- springboot整合微软的ad域,采用ldap的api来整合,实现用户登录验证、
流程: 1.用户调登录接口,传用户名和密码2.用户名和密码在ad验证,验证通过后,返回当前用户的相关信息.(注:ldap为java自带的api不需要maven引入其他的)3.根据返回的用户信息,实现自 ...
- webrtc如何进行错误恢复
视频的压缩方法:(三种帧) 为了视频尽可能的保持高效,视频数据通过不同的编码进行压缩.以帧为单位进行压缩,按照压缩中的不同作用可分类为:内帧(Intra-frames,I帧),预测帧(Predicti ...
- linux(centos7)设置tomcat开机启动
1.在/etc/rc.d/rc.local中加入: #java environment export JAVA_HOME=/usr/java/jdk1.8.0_161 export CLASSPATH ...
- linux内核态和用户态的信号量
在Linux的内核态和用户态都有信号量,使用也不同,简单记录一下. 1> 内核信号量,由内核控制路径使用.内核信号量是struct semaphore类型的对象,它在中定义struct sema ...