C# 如何将(错误的)12:00时间转换为2400时间?
我这里有点问题,我自己就要放弃了,我希望这里的专家能帮我挽救我的数据 我有一个收集财务数据的程序。数据格式如下所示 时间、数据 时间、数据 它是一种文本格式,我有大约30个文件,每个大约1-2GB。我遇到的问题是,当我第一次启动它时,我意外地将其格式化为12小时时间格式“yyyy/MM/dd hh:MM:ss.fff”,而不是2400小时时间格式“yyy/MM/dd hh:MM:ss.fff” 现在我的数据是12小时格式,没有am/pm 我现在需要编写一个程序,将12小时格式转换为2400格式。我面临的问题如下:C# 如何将(错误的)12:00时间转换为2400时间?,c#,time-format,C#,Time Format,我这里有点问题,我自己就要放弃了,我希望这里的专家能帮我挽救我的数据 我有一个收集财务数据的程序。数据格式如下所示 时间、数据 时间、数据 它是一种文本格式,我有大约30个文件,每个大约1-2GB。我遇到的问题是,当我第一次启动它时,我意外地将其格式化为12小时时间格式“yyyy/MM/dd hh:MM:ss.fff”,而不是2400小时时间格式“yyy/MM/dd hh:MM:ss.fff” 现在我的数据是12小时格式,没有am/pm 我现在需要编写一个程序,将12小时格式转换为2400格式
编辑:现在我可以准确地说出我的问题,我需要从数据中找出我是处于am模式还是PM模式,如果没有那么多行,我可能可以使用excel并更正它,手动查看接下来的几行并推断它是am模式还是PM模式。对于1/2亿行,我需要对它进行逻辑编程,以确定它是AM模式还是PM模式,我很难做到这一点。在过渡时间里,我该如何处理那些不正常的几分钟呢?12am是0000,12pm是1200,但1am是0100,1pm是1300(所以不仅仅是从12am减去12) 如果您将时间读入一个DateTime对象,它与使用.AddHours(double)一样简单
myDateTime=myDateTime.AddHours(12);//添加12小时
//或
myDateTime=myDateTime.AddHours(-12);//减去12小时
你如何决定你是在上午还是下午模式取决于你,我不太明白为什么你不能解决这个问题,因为你说数据是在任何时候生成的
如果在字符串上运行“yyyy/MM/dd hh:MM:ss.fff”(12小时格式,没有am/pm)
- 如果有效,您知道:日期仍然处于am/pm模式或24小时制的am模式
- 如果失败,您知道:日期为24小时模式,时间为下午(因为它将超出12小时模式的范围)
- 如果真的是上午时间,你有正确的日期
- 如果时间超过12:59,您将获得下午的正确日期(因为它以24小时格式报告)
- 如果日期应为下午时间,但读取为上午时间,则您知道您使用的是12小时格式,需要检查前面或后面的行,以确定是上午时间还是下午时间
但是,如果日期发生变化,您可能无法判断条目是否从上午/下午开始。查看给定日期的所有数据可能可以为您提供答案。如果一天的条目仅从上午或下午开始,您将无法确定。假设记录之间的间隔时间不超过12小时,您的转换程序just需要跟踪其当前查看的是AM还是PM时间。然后,每当小时数达到12或变为较低的数字时,您就切换AM/PM标志。您必须提供一个参数,告诉它从哪种模式开始。文件创建时间是否与正确的第一行时间一致?时间顺序有多粗略,i、 例如,记录是否会超出顺序超过一分钟?请参阅此文档:@my other me,我从未想过使用创建时间作为参考,我将使用该@Les进行调查,它将超出顺序大约几秒钟,但不会超过1分钟@Plater,谢谢,我有点明白你的意思,我从未想过这一点,需要它现在我明白你的意思了,我回到第一步。我面临的问题是,我需要从数据中找出我是处于am模式还是PM模式,如果没有那么多行,我可能可以使用excel并更正它,手动查看接下来的几行并推断它是am模式还是PM模式。有12亿行,我需要对它进行逻辑编程,以确定它是AM模式还是PM模式,我很难做到这一点。