fish_date
日期处理增强函数包¶
fish_date.get_date_range (dates[, separator]) |
获取某个月的日期范围,返回该月第一天和最后一天的字符串表示 |
fish_date.get_years ([months, refer]) |
获取基准时月份增量的年月 |
fish_date.get_time_interval (start_time, end_time) |
获取两个unix时间戳之间的时间间隔 |
fish_date.transform_unix_to_datetime (timestamp) |
将 unix 时间戳转换成 datetime 类型 |
fish_date.transform_datetime_to_unix ([dtime]) |
将 datetime 类型转换成 unix 时间戳 |
fish_date.FishDateTimeFormat.strftime ([…]) |
将 datetime 对象转换为 str |
fish_date.FishDateTimeFormat.strptime (…) |
将 str 转换为 datetime 对象 |
fish_date.RandomTime.get_random_date_by_range (…) |
生成指定日期范围内的一个随机日期 |
fish_date.RandomTime.get_random_date_by_year (year) |
获取当前年的随机日期字符串 |
fish_date.RandomTime.get_random_datetime_this_month () |
生成一个属于当前月的随机日期时间 |
fish_date.RandomTime.get_random_datetime_this_year () |
获取当前年的随机时间字符串 |
-
class
fish_date.
FishDateTimeFormat
¶ 实现 datetime 和 str 之间相互转换,基于 Python 的 datetime.datetime 进行封装和扩展;
举例如下:
print('--- FishDateTimeFormat demo ---') datetime_obj = date(year=2018, month=11, day=23) print(FishDateTimeFormat.strftime(datetime_obj, '%Y-%m-%d')) date_time_str = '2018-11-23 23:17:20' time_format = '%Y-%m-%d %H:%M:%S' print(FishDateTimeFormat.strptime(date_time_str, time_format)) print('---')
执行结果:
--- FishDateTimeFormat demo --- 2018-11-23 2018-11-23 23:17:20 <class 'datetime.datetime'> ---
-
static
strftime
(date_time=None, time_format=None)¶ 将 datetime 对象转换为 str
Param: - date_time: (obj) datetime 对象
- time_format: (sting) 日期格式字符串
Returns: - date_time_str: (string) 日期字符串
-
static
strptime
(time_str, time_format)¶ 将 str 转换为 datetime 对象
Param: - time_str: (string) 日期字符串
- time_format: (sting) 日期格式字符串
Returns: - datetime_obj: (obj) datetime 对象
-
static
-
class
fish_date.
RandomTime
¶ 获取随机时间
举例如下:
print('--- RandomTime demo ---') print(RandomTime.get_date_time_this_month()) print(RandomTime.get_date_time_this_year()) print('---')
执行结果:
--- Base64 demo --- 2018-07-01 12:47:20 2018-02-08 17:16:09 ---
-
static
get_random_date_by_range
(begin_date, end_date, date_format='%Y-%m-%d')¶ 生成指定日期范围内的一个随机日期
Param: - begin_date: (string) 起始日期,yyyy-MM-dd,eg. 2018-01-01
- end_date: (string) 结束日期,yyyy-MM-dd,eg. 2018-12-31
- date_format: (string) 输入的日期格式,默认格式 “%Y-%m-%d”
Returns: - date_str: (string) 日期范围内的一个指定格式的随机日期,指定格式默认为 “%Y%m%d”,eg. 20180530
举例如下:
print('--- RandomTime.get_random_date_by_range demo ---') print(RandomTime.get_random_date_by_range("2010-01-01","2010-12-31")) print('---')
执行结果:
--- RandomTime.get_random_date_by_range demo --- 20100124 ---
-
static
get_random_date_by_year
(year)¶ 获取当前年的随机日期字符串
Param: - year: (string) 长度为 4 位的年份字符串,eg. 2018
Returns: - date_str: (string) 传入年份内的随机合法日期字符串,eg. 20180201
举例如下:
print('--- RandomTime.get_random_date_by_year demo ---') print(RandomTime.get_random_date_by_year("2010")) print('---')
执行结果:
--- RandomTime.gen_date_by_year demo --- 20100505 ---
-
static
get_random_datetime_this_month
()¶ 生成一个属于当前月的随机日期时间
Returns: - random_date: (datetime) 个属于当前月的随机日期时间
举例如下:
print('--- RandomTime.get_random_datetime_this_month demo ---') print(RandomTime.get_random_datetime_this_month) print('---')
执行结果:
--- RandomTime.get_date_time_this_month demo demo --- 2018-07-01 12:47:20 ---
-
static
get_random_datetime_this_year
()¶ 获取当前年的随机时间字符串
Returns: - date_this_year: (datetime) 当前月份的随机时间
举例如下:
print('--- RandomTime.get_date_time_this_year demo ---') print(RandomTime.get_date_time_this_year()) print('---')
执行结果:
--- RandomTime.get_date_time_this_year demo demo --- 2018-02-08 17:16:09 ---
-
static
-
fish_date.
get_date_range
(dates, separator='-')¶ 获取某个月的日期范围,返回该月第一天和最后一天的字符串表示
Param: - dates: (string 或者 datetime obj) 月份信息
- separator: (string) 分隔符,默认为 ‘-’
Returns: - first_day: (string) 该月份的第一天
- last_day: (string) 该月份的最后一天
举例如下:
print('--- get_date_range demo ---') now_time = datetime.now() print(get_date_range(now_time)) print(get_date_range('201802',separator='/')) print('---')
执行结果:
--- get_years demo --- ('2018-06-1', '2018-06-30') ('2018/02/1', '2018/02/28') ---
-
fish_date.
get_time_interval
(start_time, end_time)¶ 获取两个unix时间戳之间的时间间隔
Param: - start_time: (int) 开始时间,unix 时间戳
- end_time: (int) 结束时间,unix 时间戳
Returns: - interval_dict: (dict) 时间间隔字典
举例如下:
print('--- get_time_interval demo ---') import time start = int(time.time()) end = start - 98908 print(get_time_interval(end, start)) print('---')
执行结果:
--- get_time_interval demo --- {'days': 1, 'hours': 3, 'minutes': 28, 'seconds': 28} ---
-
fish_date.
get_years
(months=0, refer=None)¶ 获取基准时月份增量的年月
Param: - months: (int) 月份增量,正数为往后年月,整数为往前年月
- refer: (datetime obj) datetime 对象,或者有 month 和 year 属性的实例,默认为当前时间
Returns: - result: (string) 年月字符串
举例如下:
print('--- get_years demo ---') print(get_years(-5)) print(get_years(7, datetime.now())) print('---')
执行结果:
--- get_years demo --- 201801 201901 ---
-
fish_date.
transform_datetime_to_unix
(dtime=None)¶ 将 datetime 类型转换成 unix 时间戳
Param: - dtime: (datetime) datetime 类型实例,默认为当前时间
Returns: - data_type: (datetime) datetime 类型实例
举例如下:
print('--- transform_datetime_to_unix demo ---') dtime = datetime.datetime.now() ans_time = transform_datetime_to_unix(dtime) print(ans_time) print('---')
执行结果:
--- transform_datetime_to_unix demo --- 1535108620.0 ---
-
fish_date.
transform_unix_to_datetime
(timestamp)¶ 将 unix 时间戳转换成 datetime 类型
Param: - timestamp: (int) unix 时间戳
Returns: - data_type: (datetime) datetime 类型实例
举例如下:
print('--- transform_unix_to_datetime demo ---') import time timestamp = int(time.time()) date_type = transform_unix_to_datetime(timestamp) print(type(date_type)) print(date_type) print('---')
执行结果:
--- transform_unix_to_datetime demo --- <class 'datetime.datetime'> 2018-08-22 19:48:03 ---