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 对象

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
---
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
---