#北京时间需加上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. 09_ for 练习 _ FlowerNumber

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...

  2. 滑动viewpage

    Adapter: package com.example.fashionyuan.Adatader; import android.support.v4.app.Fragment;import and ...

  3. map映射

    采集于:https://blog.csdn.net/luanpeng825485697/article/details/78056312 映射map: var map = new Map(); //映 ...

  4. 与eslint有关的规范

    https://cloud.tencent.com/developer/section/1135682 腾讯云的规范还是不错的

  5. fiddler4微信抓包教程

    使用fiddler来抓包: 需要先做一些简单的准备工作: 一台带有无线网卡的PC或者笔记本电脑,然后将电脑和手机连接到同一个Wi-Fi网络中,并且保证二者是在同一个ip网段内的: 在电脑上安装 Fid ...

  6. error lnk1158 无法运行rc.exe

    找到C:\Program Files (x86)\Windows Kits\8.0\bin\在运行一下rc.exe和rcdll.dll拷贝到D:\Soft\VS2015\VC\bin目录下.

  7. 安晓辉大神的感悟:如果你发现了自己的学习模式,愿意学并且能坚持,我觉得没什么能阻挡你征服软件世界的脚步(对于开发人员来讲,最大的风险是:在职业规划上没有延续性地乱跳槽。时刻要牢记在心的:培养自己的稀缺性) good

    从技术支持中途转战软件开发,如今从事编程工作已十多有余,2014年CSDN博文大赛编程语言组冠军.CSDN Qt论坛的版主安晓辉老师从今天开始,坐镇CSDN社区问答栏目的 第十四期,届时会接受广大网友 ...

  8. memory error python报错

    np.array时报错内存溢出,检查了python安装的是64位版本,通过下面dtype=np.uint8不再报错texts_vec = (np.array(texts_vec,dtype=np.ui ...

  9. node.js爬取ajax接口数据

    爬取页面数据与爬取接口数据,我还是觉得爬取接口数据更加简单一点,主要爬取一些分页的数据. 爬取步骤: 1.明确目标接口地址,举个例子 : https://www.vcg.com/api/common/ ...

  10. group by 用法解析

    group by 用法解析 group by语法可以根据给定数据列的每个成员对查询结果进行分组统计,最终得到一个分组汇总表. SELECT子句中的列名必须为分组列或列函数.列函数对于GROUP BY子 ...