目录
7.time.strftime(format [,tuple])
Python的Time库可以进行时间相关的处理,如访问当前日期和时间,输出不同格式的时间以及等待指定的时间等。下面本文对常用的Time方法进行介绍。
time.time()会返回当前时间的时间戳,时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。注意time.time()的括号内没有参数,下面是代码举例:
>>> import time
>>> time.time() #返回当前时间戳
1663950612.3896797
time.localtime([sec])可以将时间戳的秒数转化为时间元组格式,时间元组是另一种表示时间的方式,其格式为(tm_year,tm_mon,tm_mday,tm_hour,tm_min, tm_sec,tm_wday,tm_yday,tm_isdst),下面是每个元素的含义
tm_year: 年
tm_mon: 月,范围为[1,12]
tm_mday: 一个月的第几天,范围为[1,31]
tm_hour: 小时,范围为[0,23]
tm_min: 分, 范围为[0,59]
tm_sec: 秒,范围为[0,59]
tm_wday: 一周中的第几天,范围是[0,6],周一为0
tm_yday: 一年中的第几天,范围是[1,366]
tm_isdat: 1代表夏令时
time.localtime()如果括号内不加参数,表示将当前时间转换为时间元组。如果要访问时间元组中的某项,如tm_year,可以用time.localtime().tm_year。下面是代码举例:
>>> time.localtime() #返回当前时间的时间元组
time.struct_time(tm_year=2022, tm_mon=9, tm_mday=24, tm_hour=0, tm_min=48, tm_sec=28, tm_wday=5, tm_yday=267, tm_isdst=0)
>>> time.localtime(time.time()-24*60*60) #返回当前时间前一天的时间元组
time.struct_time(tm_year=2022, tm_mon=9, tm_mday=23, tm_hour=0, tm_min=49, tm_sec=13, tm_wday=4, tm_yday=266, tm_isdst=0)
>>> time.localtime().tm_year #调用tm_year
2022
time.gmtime()和time.localtime()的功能类似,不同的是time.gmtime()返回的是UTC时间(0时区)的时间元组,而time.locatime()返回的是本地的时间元组,如北京时间。下面是代码举例,请注意例子中2个方法返回值的不同。
>>> time.gmtime() #返回0时区的时间元组
time.struct_time(tm_year=2022, tm_mon=9, tm_mday=23, tm_hour=17, tm_min=3, tm_sec=44, tm_wday=4, tm_yday=266, tm_isdst=0)
>>> time.localtime() #返回本地的时间元组,日期和时间不一样
time.struct_time(tm_year=2022, tm_mon=9, tm_mday=24, tm_hour=1, tm_min=3, tm_sec=50, tm_wday=5, tm_yday=267, tm_isdst=0)
time.ctime([sec])可以将时间戳的秒数转换字符串的时间格式。字符串是另外一种表示时间的方法,也是更方便我们理解的时间格式,例如'Sat Jun 06 16:26:11 1998' 。注意到此为止我们已经介绍了3种时间的格式,分别为时间戳,时间元组和时间字符串,这3种格式大家要牢记于心。如果time.ctime()括号内不加参数,默认返回当前时间的时间字符串。下面是代码举例:
>>> time.ctime() #返回当前时间字符串
'Sat Sep 24 00:55:07 2022'
>>> time.ctime(time.time()-24*60*60) #返回当前时间前一天的时间字符串
'Fri Sep 23 00:55:36 2022'
time.asctime([tuple])可以将时间元组转换成字符串的时间格式,如果括号内不给参数,则默认返回当前时间的字符串,相当于time.asctime(time.localtime())。下面是代码举例:
>>> time.asctime() #返回当前时间字符串
'Sat Sep 24 01:09:14 2022'
>>> time.asctime(time.localtime()) #返回当前时间字符串
'Sat Sep 24 01:09:49 2022'
>>> time.asctime((1,1,1,1,1,1,1,1,1)) #给定元组,返回时间字符串
'Tue Jan 1 01:01:01 1'
time.mktime([tuple])可以将时间元组转换成时间戳的秒数,注意该方法括号内必须要有时间元组参数。下面是代码举例:
>>> time.mktime(time.localtime()) #转换时间元组到时间戳
1663953237.0
time.strftime()可以将时间元组定制化输出到时间字符串,其中的时间字符串可以定制格。其格式控制符如下:
| 格式控制符 | 含义 |
| %Y | 四位数的年份,取值范围为0001~9999,如1900 |
| %m | 月份(01~12),例如10 |
| %d | 月中的一天(01~31)例如:25 |
| %B | 本地完整的月份名称,比如January |
| %b | 本地简化的月份名称,比如Jan |
| %a | 本地简化的周日期,Mon~Sun,例如Wed |
| %A | 本地完整周日期,”Monday~Sunday,例如Wednesday |
| %H | 24小时制小时数(00~23),例如:12 |
| %M | 分钟数(00~59),例如26 |
| %S | 秒(00~59),例如26 |
| %l | 12小时制小时数(01~12),例如:7 |
| %p | 上下午,取值为AM或PM |
以上表格信息出自文章https://blog.csdn.net/weixin_59448049/article/details/122790431
下面是代码举例:
>>> time.strftime("%H:%M:%S",time.localtime()) #返回当前时间的字符串
'01:41:38'
>>> time.strftime("%Y-%m-%d %p %H:%M:%S",time.localtime()) #返回当前日期和时间的字符串
'2022-09-24 AM 01:42:10'
time.strptime()可以将字符串时间按照一定时间格式解析为时间元组。这里需要着重和time.strftime()进行区分,因为这2个方法的名字只有1个字母不一样。我们可以用一个简单的方法进行区分:time.strftime()中的f代表format,可以记成str format time(字符串格式的时间) ;time.strptime()的p代表parse,可以记为str parse time(字符串解析成时间)。下面是本方法的代码举例:
>>> time.strptime('2011-09-11 08:40:22',"%Y-%m-%d %H:%M:%S")
time.struct_time(tm_year=2011, tm_mon=9, tm_mday=11, tm_hour=8, tm_min=40, tm_sec=22, tm_wday=6, tm_yday=254, tm_isdst=-1)
time.sleep(sec)可以让程序等待sec的秒数,括号内可以是int或者float的数。下面是例子:
>>> time.sleep(1) #等待1s
>>> time.sleep(0.5) #等待0.5s
总的来说time模块中时间可以有3种格式:时间戳,时间元组和时间字符串,其中时间字符串可以自行定制格式。time模块的方法大部分是针对这几种时间格式进行输出,处理和转化。以上就是本文的所有内容,如果对您有帮助,记得点赞收藏哈!
假设我做了一个模块如下:m=Module.newdoclassCendend三个问题:除了对m的引用之外,还有什么方法可以访问C和m中的其他内容?我可以在创建匿名模块后为其命名吗(就像我输入“module...”一样)?如何在使用完匿名模块后将其删除,使其定义的常量不再存在? 最佳答案 三个答案:是的,使用ObjectSpace.此代码使c引用你的类(class)C不引用m:c=nilObjectSpace.each_object{|obj|c=objif(Class===objandobj.name=~/::C$/)}当然这取决于
作为我的Rails应用程序的一部分,我编写了一个小导入程序,它从我们的LDAP系统中吸取数据并将其塞入一个用户表中。不幸的是,与LDAP相关的代码在遍历我们的32K用户时泄漏了大量内存,我一直无法弄清楚如何解决这个问题。这个问题似乎在某种程度上与LDAP库有关,因为当我删除对LDAP内容的调用时,内存使用情况会很好地稳定下来。此外,不断增加的对象是Net::BER::BerIdentifiedString和Net::BER::BerIdentifiedArray,它们都是LDAP库的一部分。当我运行导入时,内存使用量最终达到超过1GB的峰值。如果问题存在,我需要找到一些方法来更正我的代
关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion我想在固定时间创建一系列低音和高音调的哔哔声。例如:在150毫秒时发出高音调的蜂鸣声在151毫秒时发出低音调的蜂鸣声200毫秒时发出低音调的蜂鸣声250毫秒的高音调蜂鸣声有没有办法在Ruby或Python中做到这一点?我真的不在乎输出编码是什么(.wav、.mp3、.ogg等等),但我确实想创建一个输出文件。
我有一个包含模块的模型。我想在模块中覆盖模型的访问器方法。例如:classBlah这显然行不通。有什么想法可以实现吗? 最佳答案 您的代码看起来是正确的。我们正在毫无困难地使用这个确切的模式。如果我没记错的话,Rails使用#method_missing作为属性setter,因此您的模块将优先,阻止ActiveRecord的setter。如果您正在使用ActiveSupport::Concern(参见thisblogpost),那么您的实例方法需要进入一个特殊的模块:classBlah
我刚刚被困在这个问题上一段时间了。以这个基地为例:moduleTopclassTestendmoduleFooendend稍后,我可以通过这样做在Foo中定义扩展Test的类:moduleTopmoduleFooclassSomeTest但是,如果我尝试通过使用::指定模块来最小化缩进:moduleTop::FooclassFailure这失败了:NameError:uninitializedconstantTop::Foo::Test这是一个错误,还是仅仅是Ruby解析变量名的方式的逻辑结果? 最佳答案 Isthisabug,or
我想获取模块中定义的所有常量的值:moduleLettersA='apple'.freezeB='boy'.freezeendconstants给了我常量的名字:Letters.constants(false)#=>[:A,:B]如何获取它们的值的数组,即["apple","boy"]? 最佳答案 为了做到这一点,请使用mapLetters.constants(false).map&Letters.method(:const_get)这将返回["a","b"]第二种方式:Letters.constants(false).map{|c
我的假设是moduleAmoduleBendend和moduleA::Bend是一样的。我能够从thisblog找到解决方案,thisSOthread和andthisSOthread.为什么以及什么时候应该更喜欢紧凑语法A::B而不是另一个,因为它显然有一个缺点?我有一种直觉,它可能与性能有关,因为在更多命名空间中查找常量需要更多计算。但是我无法通过对普通类进行基准测试来验证这一点。 最佳答案 这两种写作方法经常被混淆。首先要说的是,据我所知,没有可衡量的性能差异。(在下面的书面示例中不断查找)最明显的区别,可能也是最著名的,是你的
我一直致力于让我们的Rails2.3.8应用程序在JRuby下正确运行。一切正常,直到我启用config.threadsafe!以实现JRuby提供的并发性。这导致lib/中的模块和类不再自动加载。使用config.threadsafe!启用:$rubyscript/runner-eproduction'pSim::Sim200Provisioner'/Users/amchale/.rvm/gems/jruby-1.5.1@web-services/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:105:in`co
这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Pythonconditionalassignmentoperator对于这样一个简单的问题表示歉意,但是谷歌搜索||=并不是很有帮助;)Python中是否有与Ruby和Perl中的||=语句等效的语句?例如:foo="hey"foo||="what"#assignfooifit'sundefined#fooisstill"hey"bar||="yeah"#baris"yeah"另外,类似这样的东西的通用术语是什么?条件分配是我的第一个猜测,但Wikipediapage跟我想的不太一样。
什么是ruby的rack或python的Java的wsgi?还有一个路由库。 最佳答案 来自Python标准PEP333:Bycontrast,althoughJavahasjustasmanywebapplicationframeworksavailable,Java's"servlet"APImakesitpossibleforapplicationswrittenwithanyJavawebapplicationframeworktoruninanywebserverthatsupportstheservletAPI.ht