now.strftime用法
时间: 2023-02-08 16:50:45 浏览: 769
`now.strftime` 是 Python 中用来格式化时间字符串的函数。其中,`now` 是一个 datetime 对象,表示当前时间。
语法:now.strftime(format)
参数:format,字符串类型,代表输出的时间格式,如 %Y 代表四位数年份,%m 代表两位数月份,%d 代表两位数日期等。
返回值:一个字符串,表示格式化后的时间。
使用示例:
```
from datetime import datetime
now = datetime.now()
# 输出当前时间,格式为 YYYY-MM-DD HH:MM:SS
print(now.strftime("%Y-%m-%d %H:%M:%S"))
# 输出当前时间,格式为 MM/DD/YY
print(now.strftime("%m/%d/%y"))
```
上面的代码会分别输出当前时间,年月日格式为 YYYY-MM-DD, 时分秒格式为HH:MM:SS , 另外一种格式为 MM/DD/YY
相关问题
rails ,怎么显示time.now为北京时间:@time = Time.now.strftime("%H:%M:%S")
要将 `Time.now` 转换为北京时间,需要先将其转换为东八区时间。可以使用 `ActiveSupport::TimeZone` 类来完成此操作。以下是具体操作步骤:
1. 在 `config/application.rb` 中设置默认时区为北京时间:
```ruby
config.time_zone = 'Beijing'
```
2. 在控制器中使用 `in_time_zone` 方法将当前时间转换为北京时间,并格式化为字符串:
```ruby
@time = Time.now.in_time_zone.strftime("%H:%M:%S")
```
这样就可以将当前时间转换为北京时间,并以指定格式显示出来。
为什么循环中调用now.strftime时间不会变,如何做到在循环中时间会变
Python中的datetime对象是可变对象,但是调用strftime方法只是将datetime对象中的时间格式化成字符串,并不会改变datetime对象本身的值。因此在循环中重复调用now.strftime方法得到的时间是不会变的。
要在循环中实现时间变化,可以使用datetime模块中的timedelta对象来进行时间加减操作,从而改变datetime对象的值。例如,可以在每次循环中加上一定的时间间隔,如下所示:
```python
import datetime
now = datetime.datetime.now()
delta = datetime.timedelta(seconds=1)
for i in range(10):
now = now + delta
print(now.strftime('%Y-%m-%d %H:%M:%S'))
```
上面的代码中,每次循环中都会将now对象加上1秒钟的时间间隔,然后再将新的时间格式化输出。这样就能够在循环中实现时间的变化了。
阅读全文