Perl中的10个操作日期和时间的CPAN模块介绍
作者:junjie 发布时间:2023-07-27 10:04:41
能够操控日期和时间对于大多数编程语言来说是基本的能力,Perl也不例外。但是在碰到与时间相关的更加复杂的处理时,Perl自带的功能常常就显得力不从心了。在这种情况下,上Perl综合典藏网(CPAN)看看是一个好主意,上面有很多随时可以使用的Perl模块,让开发人员能够有效地进行日期和时间操作。花点时间浏览这个网站看看是否能够找到一些在下一个项目里用得上的东西是值得的。
本文列出了Perl CPAN上用来操控日期和时间的10个最有趣的模块,为您下一次转化时区和计算两个时间戳之间的秒数打下了基础,现在我们就来看看它们。
注:您可以根据下面提供的方法直接从Internet上安装CPAN模块。
Date::Manip
这个模块被称为日期操控模块的“瑞士军刀”。它提供的例程可以用来分析和比较日期,提取日期信息,确定日期信息,确定日期/时间偏量,使用重复日期和时间,以及在不同语言里使用日期等。但是它运行起来要比其他更加专业的模块慢。
当您需要一个通用的日期操控模块且不特别关心性能的时候使用这个模块。
DateTime
这个模块是Perl的DateTime项目的一部分,它提供了一个基类,用以“代表日期/时间的组合”。它是创建自定义日期(Date)对象的最方便的方法,并且包括了用于分析、格式化、计算持续时间和操控时区的模块。
一般来说,在需要本地化或者定义用于时间信息的自定义存储容器的时候,您要将这个模块用作创建与日期相关的新对象。
Time::Format
在需要重新格式化日期和时间值的时候,这个模块是无可匹敌的——它支持大量格式化代码,能够大幅改变日期和时间的外观。它同时接受DateTime对象和Date::Manip字符串,还为加入的控件提供了到POSIX的strftime()函数的接口。
当您需要格式化日期和时间值的时候(通常是在将它们显示给应用程序用户之前)使用这个模块。
Time::Interval
这个模块对于处理时间间隔十分有用。它提供的例程可以计算两个时间戳之间的日、小时、分钟和秒的总数。它还可以轻松地将时长转换成不同的时间单位,例如秒、小时,或者分钟。
当您需要计算两个日期值之间所流逝的时间时使用这个模块。
Date::Convert
这个模块提供的例程用于在不同的日期格式(阳历、儒略历、犹太历、 * 历和绝对历)之间转换。它还提供挂钩用以轻松扩展到新的日历格式。
当您需要从一个日历格式转换到另外一个日历格式的时候使用这个模块。
Benchmark
这个模块允许您多次运行同一段代码,计算执行每次运行的时间并返回所取得的平均值。它还可以被用来查看一个代码块可以在固定的时间窗里运行多少次。
在进行性能基准测试,测量某个代码块运行的速度,以及收集精确的读数以指导您进行优化的时候使用这个模块。
Time::Normalize
这个模块提供的例程用来把任意日期和时间值格式化成一个统一的、标准的表示,它然后可以被用来进行计算或者保存。它会对输入的内容进行错误检查,然后以清楚的格式返回独立的时间和/或日期组件。
当您怀疑输入的日期有错误并需要在数据库或者应用程序里使用它之前“清理干净”的时候使用这个模块。
Regexp::Common::time
这个模块会创建可以用被用来分析日期和时间的正则表达式。它支持同时使用精确的规则和复杂的模糊逻辑从字符串值捕捉日期模式。
用这个模块从人们易于理解的字符串识别和提取日期信息,并将它转换成机器可读的格式(例如ISO 8601)。
MySQL::DateFormat
这个模块提供的例程可以把日期和数字在MySQL的YYYY-MM-DD格式和人们易于理解的字符串之间来回转换。在从/到MySQL数据库取回/添加含有日期信息的记录时这个模块十分有用。
为了以可读性更强的方式显示,或者在将它插入MySQL数据库之前修改用户提供的日期值,您可以使用这个模块来重新格式化MySQL的日期/时间字符串。
Net::Time
这个模块提供了一个从远程客户端取回日期和时间信息的客户端接口。如果您的应用程序要总是确保知道当前的日期和时间,以保证系统不被黑客窥探,这就显得尤其有用。
在通过TCP网络从远程主机上取回日期/时间字符串的时候要使用这个模块。
使用示例:
取得某一日期时间的信息
方法一
use POSIX qw(strftime);
localtime(time() - 24*60*60)
strftime "%Y%m%d%k%M%S",localtime $^T;
方法二
use 5.010;
use POSIX qw(strftime);
# These are core modules in Perl 5.10 and newer
use Time::Piece;
use Time::Seconds;
my $yesterday = localtime() - ONE_DAY;
say $yesterday->strftime('%b %d %Y');
猜你喜欢
- 简介Python下有许多款不同的 Web 框架。Django是重量级选手中最有代表性的一位。许多成功的网站和APP都基于Django。Dja
- OpenCV介绍OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows、Android和Ma
- 在XHTML标签中有一些标签的作用是相似的,当然这里的相似是指语义相似,以至于很多人都不清楚这些相似的标签如何使用,那么今天的主题就是分解相
- 内容摘要:ASP开发人员为了在他们的设计项目中获得更好的性能和可扩展性而不断努力。幸运地是,有许多书籍和站点在这方面提供了很好的建议。但是这
- 前言:图像处理是常用的技术,python 拥有丰富的第三方扩展库,Pillow 是 Python3 最常用的图像处理库,目前最高版本5.2.
- 本文借鉴于张广河教授主编的《数据结构》,对其中的代码进行了完善。从某源点到其余各顶点的最短路径Dijkstra算法可用于求解图中某源点到其余
- 我们有时候希望回车键敲在文本框(input element)里来提交表单(form),但有时候又不希望如此。比如搜索行为,希望输入完关键词之
- 从学习Python至今,发现很多时候是将Python作为一种工具。特别在文本处理方面,使用起来更是游刃有余。说到文本处理,那么正则表达式必然
- 网络连接与通信是我们学习任何编程语言都绕不过的知识点。 Python 也不例外,本文就介绍因特网的核心协议 TCP ,以及如何用 Pytho
- 1、查看数据类型In [11]: arr = np.array([1,2,3,4,5])In [12]: arrOut[12]: array
- django-pagination这是一个python包,来自github上的一个项目,很容易用。不过这是一个懒人工具,好吧(工具理性)。不
- 本博客主要谈及内容是: 如何使用pyqt5是上打开摄像头并在label上显示,以及优化成圆形label框。本文章可能是全网首篇关于圆形lab
- 以下是通过Excel 的VBA连接Oracle并操作Oracle相关数据的示例Excel 通过VBA连接数据库需要安装相应的Oracle客户
- 问题:测试时 收发流采用TestCenter、SmartBit等仪表来进行。如果仍采用其进行自动化冒烟,则会带来效率低、成本高的问题。解决方
- 本文实例讲述了Python数据类型之List列表。分享给大家供大家参考,具体如下:list列表1.概述:通过之前的学习,我们知道变量可以存储
- 数据库并行访问,也就是两个或两以上用户同时访问同一数据,这也是数据库引擎如何设计和实现适度反应所面临的最大问题。设计优良、性能卓越的数据库引
- PHP bin2hex() 函数实例把 "Hello World!" 转换为十六进制值:<?php $str =
- 如果要用某个开源框架,需要安装多个依赖包可以如下操作:如依赖文件形式如下(可以不要版本号):txt文件名为requirements.txt,
- 本文实例讲述了python爬虫学习笔记之Beautifulsoup模块用法。分享给大家供大家参考,具体如下:相关内容:什么是beautifu
- pypdf2是一个Python模块,可以用来读取、写入和操作PDF文件。要安装pypdf2模块,请按照以下步骤操作:确保你已经安装了Pyth