`
ispring
  • 浏览: 359474 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Linux/Unix上的时间处理

阅读更多

记录一下Linux/Unix上的时间处理:

UNIX及Linux的时间系统是由「新纪元时间」Epoch开始计算起,单位为秒,Epoch则是指定为1970年一月一日凌晨零点零分零秒,格林威治时间。
目前大部份的UNIX系统都是用32位元来记录时间,正值表示为1970以后,负值则表示1970年以前。我们可以很简单地计算出其时间领域:

2^31/86400(s) = 24855.13481(天) ~ 68.0958(年)

1970+68.0958 = 2038.0958
1970-68.0958 = 1901.9042

时间领域为[1901.9042,2038.0958]。

准确的时间为2038年一月十八日星期一晚上十点十四分七秒。那一刻,时间将会转为负数,变成1901年十二月十三日黑色星期五下午三点四十五分五十二秒,然後Jason就会跑出来用斧头砸掉您的电脑。

这就是所谓的UNIX 2038 BUG,或者您也可戏称为Jason hatchet bug。在大部份的UNIX上,并没有所谓Y2K问题,不过都有2038年问题。

在一些64位元的平台上,例如Digital Alpha、SGI、Sparc等等,则用64位元来表示时间。

2^63/86400 ~ 1E14(天) ~ 2.92E11(年)

大约是292亿年。

因此,使用64位元的电脑可能会有Armageddon bug的问题。届时位於猎户座旋臂的太阳,已经是黑矮星或暗黑物质,猎户座旋臂大概也已经被重力波震断,银河系大概则已经变成小型似星体了。

虽然许多人认为UNIX的2038年问题会随着科技的进步,而将电脑逐步汰换成64位元电脑,因此无须担心。但我个人相信,在2038年,依然会有许多状况出现。因为,就事实而言,目前许多UNIX系统都有足够的能力服役到2038年而毫无问题。因此,如果有意添购电脑主机,而且有预期会使用到那个时候,最好是选购64位元电脑,确认只有世界末日问题(除非您想要把资料流传给下一个宇宙,那就要另当别论了)。

分享到:
评论

相关推荐

    linux/unix系统编程手册附录代码

    《Linux/Unix系统编程手册》是一本深受程序员和系统管理员喜爱的经典著作,它详细阐述了在Linux和Unix操作系统上进行低级编程的各种技术。附录中的代码是书中的实例,旨在帮助读者深入理解和掌握这些系统编程的核心...

    Linux/Unix关于时间和时间戳的命令行

    在Linux/Unix操作系统中...总之,掌握Linux/Unix下的时间处理命令能够提高工作效率,特别是对于系统管理员和后端开发者来说。通过深入理解和实践,你可以更有效地操作和解析时间数据,无论是调试程序还是处理日常任务。

    Ehst.rar_Linux/Unix编程_anybody42u

    标题中的"Ehst.rar_Linux/Unix编程_anybody42u"表明这是一个关于...通过研究这些文件,开发者可以学习到如何在Linux/Unix环境中编写能够运行在手机上的日历应用,掌握时间处理、用户界面设计以及跨平台编程的相关技巧。

    Linux/Unix系统编程手册英文版

    综上所述,Michael Kerrisk的这本《The Linux Programming Interface》不仅是一本全面覆盖Linux与UNIX系统编程接口的权威手册,更因其对系统编程的深入讲解和大量实例代码而显得弥足珍贵,是一本系统编程领域内值得...

    Linux/UNIX系统编程手册

    《Linux/UNIX系统编程手册》是一本专为程序员和系统管理员设计的专业指南,由Michael Kerrisk撰写,并由人民邮电出版社出版。这本书以其详尽的代码示例为特色,深入探讨了Linux和UNIX操作系统的底层机制,是学习系统...

    UNIX环境高级编程_Linux/Unix编程_

    《UNIX环境高级编程》是一本深入探讨Linux/Unix系统编程的经典著作,对于任何希望在这些操作系统上进行系统级编程的开发者来说,都是不可或缺的参考书。这本书详细介绍了如何利用UNIX/Linux系统的API和工具来构建...

    cyclictest软件包-linux/Unix内核RT测试

    3. **FTP工具**:FTP(File Transfer Protocol)是一种标准网络协议,用于在互联网上进行文件传输,是Windows与远程Linux/Unix服务器间传输文件的常用方式。 4. **编译与安装**:在Linux/Unix环境中,源码包通常需要...

    Linux-UNIX系统编程手册(上册)1

    这本书是针对那些希望掌握系统编程技能的开发者,无论是在Linux还是其他UNIX平台上工作的程序员都能从中受益。书中包含了大量的系统调用、库函数以及实用的程序示例,涵盖了广泛的编程主题。 本书的特点在于其详尽...

    linux/unix C++ 性能统计代码

    在Linux/Unix环境中,C++性能统计是优化代码的关键步骤,它可以帮助开发者识别程序的瓶颈,从而提升程序的运行效率。本代码库提供了一种封装好的性能统计工具,旨在简化性能分析过程,其接口设计清晰易用。虽然直接...

    jefqr-radian-complexity.rar_Linux/Unix编程_complexity_信道估计

    标题中的“jefqr-radian-complexity.rar”可能是一个包含特定项目的压缩文件,而“Linux/Unix编程_complexity_信道估计”则表明这个压缩包的内容与Linux或Unix操作系统平台上的编程工作有关,特别是涉及到信道估计的...

    Linux/Unix系统编程手册 源代码

    《Linux/Unix系统编程手册》是一本权威且深入的书籍,涵盖了Linux和Unix操作系统的系统级编程技术。这本书的源代码提供了实践操作的实例,帮助读者深入理解如何在这些系统中编写高效的程序。源代码的获取是直接从...

    Linux/Unix环境下的make命令详解

    在Linux/Unix环境中,`make`命令是一个至关重要的编译工具,它极大地简化了大型项目的构建和维护。本文将深入探讨`make`及其配套的`makefile`,这两个工具是项目自动化编译的核心。 首先,`make`命令的用途在于自动...

    fvqrxz7.rar_Linux/Unix编程_TDMA分配_分配时隙_动态TDMA协议_时隙分配

    Linux/Unix编程与TDMA(时分多址)分配技术是网络通信领域中的重要概念,尤其是在移动无线自组织网络(Ad Hoc Network)的场景下。动态TDMA协议是一种优化了资源分配策略的通信协议,它允许网络节点更加灵活地管理和...

    channels-gederaae-can.rar_Linux/Unix编程_MIMO channels_finally8cq_

    标题中的"channels-gederaae-can.rar_Linux/Unix编程_MIMO channels_finally8cq_"表明这是一个关于Linux或Unix平台下的编程项目,专注于MIMO(Multiple-Input Multiple-Output)信道模拟。"finally8cq"可能是项目的...

    linux unix系统编程手册书上代码

    《Linux/Unix系统编程手册》是一本权威的书籍,涵盖了操作系统接口、进程管理、文件操作、网络编程等众多核心主题。书中的代码示例旨在帮助读者深入理解这些概念,并能够实际应用到自己的程序中。以下将对这些关键...

    常用压缩命令集linux/unix

    掌握了上述命令后,你将能够更加自如地在Linux或Unix系统中处理各种格式的压缩文件。无论是日常文件管理还是开发过程中对代码库的操作,这些命令都能为你提供极大的便利。建议将这些命令保存在个人笔记本中,以备...

    linux/unix平台下的网络编程

    通过学习和分析这些源代码,开发者可以深入理解如何在Linux和Unix环境下进行网络编程,包括如何建立和管理套接字连接,处理并发连接,实现高效的错误处理,以及利用进程间通信机制优化网络应用。同时,这也是提升...

    Jexus web server for linux/unix V3.6

    1. **跨平台支持**:Jexus的主要优势之一就是其跨平台能力,能够在Linux和Unix系统上无缝运行ASP.NET应用,打破了.NET Framework主要依赖Windows系统的局限性,使得.NET开发人员可以在更广泛的环境中部署他们的应用...

Global site tag (gtag.js) - Google Analytics