Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 根据白天的小时数创建日志文件名_Java_Calendar_Logfile - Fatal编程技术网

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

谢谢你的回答。只要应用程序在前一个小时内运行,此解决方案就可以了。但是,如果应用程序在前一个小时内未运行,则不存在任何文件,因此代码不会为在日光节约时间创建的日志文件提供后缀。但实际上,它应该给后缀,因为时间变了。