#北京时间需加上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写的时间戳转换为北京时间的小工具的更多相关文章

  1. 用Python写一个向数据库填充数据的小工具

    一. 背景 公司又要做一个新项目,是一个合作型项目,我们公司出web展示服务,合作伙伴线下提供展示数据. 而且本次项目是数据统计展示为主要功能,并没有研发对应的数据接入接口,所有展示数据源均来自数据库 ...

  2. python(6)时间戳和北京时间互转,输出当前的时间和推到七天前的日期

    项目发展的需要:(包含时间函数)time datetime 时间戳和北京时间互转 import time import datetime s = '2015-04-17 11:25:30' d = d ...

  3. JavaScript把客户端时间转换为北京时间

    写在前面 写了一遍又一遍,网页老卡住,没保存下来,不写了. 时间转换代码 //获得北京时间 Date.prototype.getBJDate = function () { //获得当前运行环境时间 ...

  4. Python 将时间戳转换为本地时间并进行格式化

    在python中,时间戳默认是为格林威治时间,而我们为东八区 使用localtime() 本地化时间戳 使用 strftime() 格式化时间戳 time = time.strftime('%Y%m% ...

  5. 几个非常适合练手的python爬虫项目,总有一个能搞定!

    前言本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理.作者:Python玩家 注意:如果你平时学Python有问题找不到人解答,可以 ...

  6. 有哪些适合新手练手的Python项目?

    http://blog.csdn.net/Lina_ACM/article/details/54581721

  7. 用Python写了个下载快手视频的小脚本

    最近又重新拾起了,对python的热情. 贴个地址: https://github.com/d1y/lovepack/blob/master/kuaishou.py 前戏说明 因为我近乎癫狂的喜欢一个 ...

  8. Python写一个Windows下的android设备截图工具

    界面版 利用python的wx库写个ui界面,用来把android设备的截图输出到电脑屏幕,前提需要安装adb,涉及到的python库也要安装.代码如下: import wx,subprocess,o ...

  9. 使用js将Unix时间戳转换为普通时间

    var unixtime=1358932051;formatTime (time) { let unixtime = time let unixTimestamp = new Date(unixtim ...

随机推荐

  1. (73)Wangdao.com第十二天_JavaScript consol 对象与控制台

    consol 对象 console对象是 JavaScript 的原生对象 它有点像 Unix 系统的标准输出stdout和标准错误stderr, 可以输出各种信息到控制台,并且还提供了很多有用的辅助 ...

  2. (91)Wangdao.com第二十四天_Mutation Observer API 突变监视器

    Mutation Observer API 突变监视接口 用来监视 DOM 变动. DOM 的任何变动,比如节点的增减.属性的变动.文本内容的变动,这个 API 都可以得到通知 概念上,它很接近事件, ...

  3. 【函数式编程】reducer为什么叫reducer

    最近学习前端的技术,在了解react对DOM的组件抽象,但不提供整体的组件通讯时候,了解了redux,然后就是react-redux: 抽象后,视图完全由对象决定,而用户只能接触视图,所以对象的改变必 ...

  4. thinkphp框架,数据动态缓存后,或数据已读取出来,想分页怎么办

    //读取缓存后赋值到数组,通过array_slice函数处理,如: $blog = S('blogname'); //赋值 $count = count($blog); //条数统计 $page = ...

  5. 源码包安装maven

    含有的命令:cd,tar,mv,vim,sourc,mvnpv [root@ycj ~]# cd /usr/local/src/ //切换路径 [root@ycj src]# wget http:// ...

  6. js 讲解

    substring() 取文本中间 split() 分割文本 charcodeat()   utf-8 tolowercase() 小写 正则是一个对象 正则   i  不区分大小写 escape(s ...

  7. springboot整合微软的ad域,采用ldap的api来整合,实现用户登录验证、

    流程: 1.用户调登录接口,传用户名和密码2.用户名和密码在ad验证,验证通过后,返回当前用户的相关信息.(注:ldap为java自带的api不需要maven引入其他的)3.根据返回的用户信息,实现自 ...

  8. webrtc如何进行错误恢复

    视频的压缩方法:(三种帧) 为了视频尽可能的保持高效,视频数据通过不同的编码进行压缩.以帧为单位进行压缩,按照压缩中的不同作用可分类为:内帧(Intra-frames,I帧),预测帧(Predicti ...

  9. linux(centos7)设置tomcat开机启动

    1.在/etc/rc.d/rc.local中加入: #java environment export JAVA_HOME=/usr/java/jdk1.8.0_161 export CLASSPATH ...

  10. linux内核态和用户态的信号量

    在Linux的内核态和用户态都有信号量,使用也不同,简单记录一下. 1> 内核信号量,由内核控制路径使用.内核信号量是struct semaphore类型的对象,它在中定义struct sema ...