【问题标题】:Need help converting an AM - PM stat end time string into Datetime 24hr需要帮助将 AM - PM 统计结束时间字符串转换为 Datetime 24hr
【发布时间】:2019-05-07 20:42:40
【问题描述】:

我正在尝试将一些数据从 csv 转换为特定的 json 数据结构,并具有以下单独示例格式的字符串: “上午 8 点 30 分 - 下午 12 点 30 分” “中午 12:00 - 下午 2:00” 其中“-”之前的时间是开始时间,“-”之后的时间是结束时间。我一直试图将它们分成 24 小时格式的 startTime 和 endTime 两个变量。 例子:

开始时间 = 0830 结束时间 = 1230

开始时间 = 1200 结束时间 = 1400

【问题讨论】:

    标签: python json dictionary time type-conversion


    【解决方案1】:
    def get_24_format(time):
        timeinstr = ""
        if len(time.split(":")[0]) is 1:
            if time[len(time)-2] == 'A':
                timeinstr += "0{}".format(time.split(":")[0])
            else:
                timeinstr += "{}".format(int(time.split(":")[0])+12)
        else:
            if time[len(time)-2] == 'A':    
                timeinstr += "{}".format(time.split(":")[0])
            else:
                timeinstr += "{}".format(int(time.split(":")[0])+12)
        timeinstr += time.split(":")[1][:2]
        return timeinstr
    
    
    # input your time here
    # time = "11:00PM - 2:00AM" 
    time = time.split("-")
    time[0] = time[0].rstrip()
    time[1] = time[1].lstrip()
    
    timeinstr = "starttime " + get_24_format(time[0]) + " endtime " + get_24_format(time[1])
    
    print(timeinstr)
    

    【讨论】:

      【解决方案2】:

      尝试:

      from datetime import *
      
      time1 = "12:00PM - 2:00PM"
      
      # Splitting the string into two parts (using the hyphen in between them) and storing them in two separate variables
      # t1 = start time; t2 = end time
      t1, t2 = time1.split(" - ")
      
      # string manipulation to make the data feedable to datetime.strptime() 
      t1 = t1.replace("AM", " AM").replace("PM", " PM")
      t2 = t2.replace("AM", " AM").replace("PM", " PM")
      
      # passing the data stored in our strings and converting it into 24hr format
      t1 = datetime.strptime(t1, '%I:%M %p')
      t1 = datetime.strftime(t1, "%H:%M")
      
      t2 = datetime.strptime(t2, '%I:%M %p')
      t2 = datetime.strftime(t2, "%H:%M")
      
      print(t1)
      print(t2)
      

      输出:

      12:00
      14:00
      

      【讨论】:

        猜你喜欢
        • 2011-12-29
        • 2017-09-18
        • 2017-01-16
        • 2021-04-01
        • 1970-01-01
        • 2018-01-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多