Java 根据白天的小时数创建日志文件名
我正在做一个项目。应用程序遵循一天的时间节省 应用程序在运行时每小时创建一个日志文件,例如Java 根据白天的小时数创建日志文件名,java,calendar,logfile,Java,Calendar,Logfile,我正在做一个项目。应用程序遵循一天的时间节省 应用程序在运行时每小时创建一个日志文件,例如 2015042206_someName.log 这里20150422是日期,06是记录时间 当冬天的时间改变时,凌晨2点会有两次——你知道我的意思 我想通过指定后缀为这两个不同的小时制作两个不同的文件,例如 2015042202A_someName.log – File before time change 2015042202B_someName.log – File after time chang
2015042206_someName.log
这里20150422是日期,06是记录时间
当冬天的时间改变时,凌晨2点会有两次——你知道我的意思
我想通过指定后缀为这两个不同的小时制作两个不同的文件,例如
2015042202A_someName.log – File before time change
2015042202B_someName.log – File after time change
我想到了一个解决方案:
不知何故(我不知道如何)从日历中获取“前一小时”,并查看“一天中的小时”和“前一小时”之间的差异。如果差值为零,则时间已更改,因此请输入后缀
在这种情况下,我不知道如何获取前一个小时的时间,特别是如果应用程序在前一个小时没有运行
任何人都能想到的任何其他解决方案
非常感谢您的帮助。提前谢谢 您只需进行一次检查,查看具有该名称的文件是否已经存在。如果有,您可以根据自己的意愿添加“A”或“B”。一个非常简单的方法是将最后一个文件名保存在.txt文件中。设置新名称时,您可以始终查看此特定文件中的姓氏。如果您的算法给您相同的名称,您可以添加后缀。最简单的方法(如果您乐于指定时区)是使用
简化格式(“yyyyMMddhhX”)
如果您将问题复杂化太多。实现这一点的最佳方法是通过设置时间戳UTC来避免夏令时问题。这样,您将永远不会出现DST问题,也不必进行复杂且容易出错的更改
诚然,如果读取文件名的人没有意识到文件名不是在本地时间,可能会感到困惑,但如果确实存在问题,您可以在文件名中添加“UTC”,例如:
2015042202_UTC_someName.log
谢谢你的回答。只要应用程序在前一个小时内运行,此解决方案就可以了。但是,如果应用程序在前一个小时内未运行,则不存在任何文件,因此代码不会为在日光节约时间创建的日志文件提供后缀。但实际上,它应该给后缀,因为时间变了。