如何将日期时间编码为数字?

时间:2019-11-07 13:05:23

标签: python datetime encode

我正在寻找一种方法,用数字代码对诸如2017-11-28 11:45:00之类的DateTime条目进行编码,该数字代码包含每个月,每个工作日(包括星期六)的数字,每个假期都作为一个唯一的数字(包括星期日) ,而时间则像白昼一样,例如上午和下午。

因此,日期时间2017-11-28 11:45:00(即11月,星期三,早晨)将得到类似1121的信息,其中11月是11,星期二是2,早晨是1。

但是,2017-04-23 14:30:03(即4月,星期日,下午)将得到472的值,其中4是4月,7是星期日和2个下午。假期的编码应与星期一相同,而星期六应与星期一不同。 当然,上面的代码格式只是一个想法,而不是强制性的。

我想将这些数据用作神经网络输入,因此对于我的建模目的而言,了解特定的工作日,节假日,日班和月份非常重要。

谢谢

1 个答案:

答案 0 :(得分:1)

- - - - - - - - - 

Input: date

Process : Main

Output: Format: Month + day + turn




Process:

month = get_month(date)

day_week = get_day(date)

hour = get_your(date)



f_monht = format_month(month)

f_day = format_day(day_week)

f_turn = format_turn(hour)


print f_monht + f_day + f_turn 

# ---------import-------------
import datetime

# ----------DEFs--------------
def format_date(date_string):
  d = datetime.datetime.strptime(date_string, '%Y-%m-%d %H:%M:%S')

  #month = get_month(date)
  month = d.month

  # day_week = get_day(date)
  day_week = d.weekday()

  # hour = get_hour(date)
  hour = d.hour

  f_monht = format_month(month)
  f_day = format_day(day_week)
  f_turn = format_turn(hour)

  return f_monht + f_day+f_turn

def format_month(month):
  return str(month)

def format_day(day_week):
  return str(day_week+1)

def  format_turn(hour):
  if hour < 12:
    return '1'
  elif hour <18:
    return '2'
  else:
    return '3'


#-----------MAIN--------------
date_1 = '2017-11-28 11:45:00'
f_date_1 = format_date(date_1)
print(f_date_1)

date_2 = '2017-04-23 14:30:03'
f_date_2 = format_date(date_2)
print(f_date_2)

源代码很大,正是出于教育目的。酌情减少