英文:
Converting a 12 hour time string with AM/PM to 24 hour time
问题
我有一堆基于时间的字符串保存在我的数据库中,格式如下:
"01:00 PM"
通过一些研究,我发现了一个帖子,显示了如何转换类似但不完全相同于我的字符串的方法。不同之处在于示例中的小时和分钟整数之间没有冒号,这在答案的转换中引发了问题:
Time.strptime("1:00 PM", "%I%P").strftime("%H:%M")
# ArgumentError (invalid strptime format - `%I%P')
在我的特定格式下,仍然有方法可以使这种转换工作吗?
英文:
I have a bunch of time based strings saved per object in my db that are formatted like this:
"01:00 PM"
Doing a little bit of research I came across a post that shows you how to convert a string similar to but not exactly how mine is. The difference being the example has no colon in between the hour and minute integers, which throws a snag in the answer's conversion:
Time.strptime("1:00 PM", "%I%P").strftime("%H:%M")
# ArgumentError (invalid strptime format - `%I%P')
Is there still a way to get this conversion to work given my particular format?
答案1
得分: 3
你试过这个吗?
time = "12:00 PM"
Time.strptime(time, "%I:%M %P").strftime("%H:%M")
英文:
Have you tried this?
time = "12:00 PM"
Time.strptime(time, "%I:%M %P").strftime("%H:%M")
答案2
得分: 0
你需要在strptime
方法中传递时间的格式,所以你需要传递'%I:%M %P'
,如果你不想在时间中包含冒号,那么你需要在strftime
方法中按照'%H%M'
的格式传递值,这样你就可以按照你的要求得到答案。
Time.strptime('10:00 PM', '%I:%M %P').strftime("%H%M")
这将给你输出"2200"
,而
Time.strptime('10:00 PM', '%I:%M %P').strftime("%H:%M")
这将给你输出"22:00"
。
谢谢。
英文:
You have to pass the format of time in strptime method so you have to pass '%I:%M %P'
and if you don't want semicolon in time than you have to pass the values according to it in strftime method as '%H%M'
so you'll get your answer as you requirement.
Time.strptime('10:00 PM', '%I:%M %P').strftime("%H%M")
this will give you output "2200"
and
Time.strptime('10:00 PM', '%I:%M %P').strftime("%H:%M")
this will give you output "22:00"
.
Thank You.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论