文件日期 修改时间 判断字符串是否是日期字符串
  X5zJxoD00Cah 2023年11月02日 73 0

日期字符串转日期

pd.to_datetime

判断字符串是否是日期字符串

def canbe_date(x:str= "0"):
    if (type(x)!= str) or x== "": # if (x in [None, "", pd.NaT]) or (type(x)!= str)
        return False
    try:
        pd.to_datetime(x, format= "%Y-%m-%d")
        return True
    except:
        return False
dict_datetime = {}
for i in [0, '0', '', np.nan, pd.NaT, None]:
    try:
        dict_datetime[i] = pd.to_datetime(i)
    except:
        dict_datetime[i] = 'error'
df_datetime = pd.DataFrame.from_dict(dict_datetime, orient='index', columns=['result']).reset_index()
df_datetime['index'] = df_datetime['index'].apply(lambda x: '\'' + str(x) + '\'' if isinstance(x, str) else x)
display(df_datetime)

文件日期 修改时间 判断字符串是否是日期字符串_字符串

获取文件的修改时间

import os
import time
import datetime
import pandas as pd

str_addr = r'D:\RPA\save'
dict_addr = {key: os.path.join(str_addr, key) for key in os.listdir(str_addr)}
dict_isfile = {key: value for key, value in dict_addr.items() if os.path.isfile(value)}
str_value = list(dict_isfile.values())[0]

# 获取文件_修改时间_时间戳
float_getmtime = os.path.getmtime(str_value)  # 方法一
float_mtime = os.stat(str_value).st_mtime  # 方法二,从文件状态stat中获取修改时间_时间戳

# 时间戳转化为时间
# 转化为指定时间格式字符串

# 方法一 time.localtime
StructTime_localtime = time.localtime(float_mtime)  # time.struct_time(tm_year=2023, tm_mon=7, tm_mday=24, tm_hour=3, tm_min=2, tm_sec=19, tm_wday=0, tm_yday=205, tm_isdst=0)
time.strftime('%Y-%m-%d %H:%M:%S', StructTime_localtime)

# 方法二 time.ctime
str_ctime = time.ctime(float_mtime)  # 'Mon Jul 24 03:02:19 2023'
datetime_strptime = datetime.datetime.strptime(str_ctime, '%a %b %d %H:%M:%S %Y')  # datetime.datetime(2023, 7, 24, 3, 2, 19)
datetime_strptime.strftime('%Y-%m-%d %H:%M:%S')

# 方法三 datetime.datetime.fromtimestamp
datetime_fromtimestamp = datetime.datetime.fromtimestamp(float_mtime)  # datetime.datetime(2023, 7, 24, 3, 2, 19, 278424)
datetime_fromtimestamp.strftime('%Y-%m-%d %H:%M:%S')

# 方法四 pandas.to_datetime
Timestamp_ToDatetime = pd.to_datetime(float_mtime, unit='s')  # 如果传入的是10位时间戳,unit设置为秒  # Timestamp('2023-07-23 19:02:19.278424064')
Timestamp_ToDatetime.strftime('%Y-%m-%d %H:%M:%S')

os.path.getmtime() 函数用于获取文件的修改时间戳。time.localtime() 函数将时间戳转换为本地时间格式,然后使用 time.strftime() 函数将本地时间格式转换为指定的时间格式。最后,使用 print() 函数输出文件的修改时间。如果你需要获取文件的访问时间或创建时间,可以使用 os.path.getatime() 和 os.path.getctime() 函数,它们的用法与 os.path.getmtime() 函数类似。


time.strftime

datetime.strftime

pd.Timestamp.strftime

的区别

datetime.strftimetime.strftime都是用于将日期时间对象格式化为字符串的函数,但它们之间有一些区别。

  1. datetime.strftime:
  • 用法:datetime_obj.strftime(format)
  • 参数:format是一个字符串,用于指定所需的日期时间格式。
  • 返回值:返回一个格式化后的字符串。
  • 功能:将datetime对象格式化为指定格式的字符串。
  • 注意:datetime.strftimedatetime模块中的方法,需要先将字符串解析为datetime对象,然后才能使用该方法。
  1. time.strftime:
  • 用法:time.strftime(format, time_struct)
  • 参数:format是一个字符串,用于指定所需的日期时间格式;time_struct是一个时间元组或时间戳。
  • 返回值:返回一个格式化后的字符串。
  • 功能:将时间元组或时间戳格式化为指定格式的字符串。
  • 注意:time.strftimetime模块中的方法,可以直接使用时间元组或时间戳进行格式化,不需要先将字符串解析为datetime对象。

总结:

  • datetime.strftime适用于datetime对象,需要先将字符串解析为datetime对象,然后使用该方法进行格式化。
  • time.strftime适用于时间元组或时间戳,可以直接使用这些对象进行格式化,不需要先将字符串解析为datetime对象。

在处理日期时间时,如果已经有datetime对象,可以使用datetime.strftime进行格式化;如果只有时间元组或时间戳,可以使用time.strftime进行格式化。



time模块是Python中用于处理时间相关操作的模块,其中包含了一些常用的函数和类。time.ctime()函数和time.localtime()函数都是time模块中的函数,它们的作用和区别如下:

  1. time.ctime()函数:
  • 作用:将一个时间戳(秒数)转换为一个可读的字符串表示,表示当前时间。
  • 参数:可以传入一个时间戳,如果不传入参数,则默认使用当前时间。
  • 返回值:返回一个字符串,表示可读的时间。
  1. time.localtime()函数:
  • 作用:将一个时间戳(秒数)转换为一个本地时间的struct_time对象。
  • 参数:可以传入一个时间戳,如果不传入参数,则默认使用当前时间。
  • 返回值:返回一个struct_time对象,包含了年、月、日、时、分、秒等时间信息。

区别:

  • 返回值类型不同:time.ctime()函数返回一个字符串,表示可读的时间;time.localtime()函数返回一个struct_time对象。
  • 返回值内容不同:time.ctime()函数返回的字符串包含了星期和月份的英文缩写,以及具体的时间信息;time.localtime()函数返回的struct_time对象包含了年、月、日、时、分、秒等时间信息,但不包含星期和月份的英文缩写。

示例代码如下:

import time

# 使用time.ctime()函数
current_time = time.ctime()
print("当前时间(time.ctime()函数):", current_time)

# 使用time.localtime()函数
local_time = time.localtime()
print("当前时间(time.localtime()函数):", local_time)
print("年:", local_time.tm_year)
print("月:", local_time.tm_mon)
print("日:", local_time.tm_mday)
print("时:", local_time.tm_hour)
print("分:", local_time.tm_min)
print("秒:", local_time.tm_sec)

输出示例:

当前时间(time.ctime()函数): Fri Aug 26 11:20:56 2023
当前时间(time.localtime()函数): time.struct_time(tm_year=2023, tm_mon=8, tm_mday=26, tm_hour=11, tm_min=20, tm_sec=56, tm_wday=4, tm_yday=238, tm_isdst=0)
年: 2023
月: 8
日: 26
时: 11
分: 20
秒: 56

注意:time.localtime()函数返回的struct_time对象中的时间信息是以0开始的,即月份范围是1-12,星期范围是0-6。

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  zLxnEsMLk4BL   2023年11月19日   34   0   0 变量名字符串bclinux
  X5zJxoD00Cah   2023年11月30日   39   0   0 GroupEmail字符串
  gBkHYLY8jvYd   2023年11月19日   26   0   0 输出格式进制字符串