在java中将当前时间戳作为文件夹名称

时间:2014-12-10 11:05:42

标签: java directory

由于我们可以在java中将当前时间作为文件名,我们也可以对文件夹执行相同的操作吗? 我们可以将文件夹的名称作为当前时间戳吗? 请帮忙。谢谢。

4 个答案:

答案 0 :(得分:7)

是这样的。

Date now = new Date();
SimpleDateFormat dateFormat = new SimpleDateFormat("hh mm ss");
String time = dateFormat.format(now);
File dir = new File(time);
dir.mkdir();

答案 1 :(得分:4)

约达时间

类似于the answer James Fox,我建议使用Joda-Time 2.6(或java.time)进行Java中的所有日期工作。

ISO 8601

我建议使用标准ISO 8601格式2014-12-10T17:05:33Z。按字母顺序排序也按时间顺序排序。另一个好处是几乎所有文化的明确阅读。

替换冒号

除了替换COLON以获得与Mac HFS+ file system的兼容性。我看到他们被HYPHEN -或FULL STOP .(句号)取代。

结果值2014-12-10T17-05-33Z与我所知道的每个常见操作系统兼容,而不是MS-DOS(8.3 naming的字符太多)。

不要替换为SOLIDUS(斜杠)或REVERSE SOLIDUS(反斜杠),以便与Unix风格的操作系统和Mi​​crosoft Windows操作系统兼容。

有关详细信息,请阅读Apple撰写的这篇文章,OS X: Cross-platform filename best practices and conventions

时区

最好指定所需的时区,而不是隐式依赖JVM的当前默认时区。

UTC

如果在计算机之间混合和匹配文件,您可能希望坚持使用UTC作为时区。

DateTime now = DateTime.now( DateTimeZone.UTC );
String output = now.toString().replace( ":" , "-" ); // Replace colons for compatibility with the Mac HFS+ file system.
File f = new File( output );
f.mkdir();

输出:

output : 2014-12-10T22-35-28.460Z

默认时区

如果要使用用户的JVM当前默认时区。

DateTime now = DateTime.now( DateTimeZone.getDefault() );
…
output : 2014-12-10T14-49-00.752-08-00

特定时区

也许您想要一个特定的时区,例如公司总部的时区。

DateTime now = DateTime.now( DateTimeZone.forID( "America/Montreal" ) );

到分钟或秒

您可能希望删除小数秒以使用整秒或整分钟。 Joda-Time有内置格式化程序dateHourMinuteSecond()dateHourMinute()。这些格式省略Z或时区偏移。我建议附加清楚;注意下面的+"Z"

DateTime now = DateTime.now( DateTimeZone.UTC );
DateTimeFormatter formatter = ISODateTimeFormat.dateHourMinuteSecond();  // Or dateHourMinute();
String output = formatter.print( now ).replace( ":" , "-" )+"Z"; // Replace colons for compatibility with the Mac HFS+ file system.
File f = new File( output );
f.mkdir();

运行时:

output : 2014-12-10T23-07-11Z

没有标点符号

另一种方法是不使用标点字符,例如20141211T214342Z

这种格式甚至被ISO 8601认为是标准格式,使用最少数量的分隔符的格式正式称为“基本”。

DateTime now = DateTime.now( DateTimeZone.UTC );
DateTimeFormatter formatter = ISODateTimeFormat.basicDateTimeNoMillis();
String output = formatter.print( now );
File f = new File( output );
f.mkdir();

答案 2 :(得分:2)

如果您正在使用JodaTime,那么可以这样做:

DateTime date = DateTime.now();
File f = new File("C:\\tmp\\"+ date.getMillis());
f.mkdir();

你得到一个名为1418210024492的文件夹(基于我运行它的时间)。

如果您希望将时间戳作为日期,则可以执行以下操作:

File f = new File("C:\\tmp\\" + date);

日期也可以按照您希望的格式进行格式化,如下所示:

String dateTime = new DateTime().toString("dd-MM-yy HH:mm:ss");
File f = new File("C:\\tmp\\" + dateTime);
f.mkdir();

我更喜欢使用JodaTime,因为它更容易实现日期和时间。

答案 3 :(得分:0)

            Date date =new Date();
            String s=""+date.getTime();
            File file = new File("rootpath"+s);
            file.mkdir();