Java中的日期和时间

时间:2011-01-16 21:20:24

标签: java

如何在Java中获取当前的时间和日期? 我想根据日期和时间命名文件。

例如:if:

Day : march 25th, 1993
Hour : 12.20 pm

然后文件名应为:250319931220

这是我初学者可以实现的吗?

谢谢

7 个答案:

答案 0 :(得分:4)

要获取当前日期,请使用java.util.Date

Date now = new Date();

要使用友好的字符串表示形式对其进行格式化,请使用java.text.SimpleDateFormat

String name = new SimpleDateFormat("ddMMyyyyHHmm").format(now);

点击上面的SimpleDateFormat链接查看所有可用的格式模式

或者,您也可以按System#currentTimeMillis()获取当前时间戳。

long now = System.currentTimeMillis();

另见:

答案 1 :(得分:1)

我会做这样的事情:

    Calendar now = Calendar.getInstance();
    DateFormat df = new SimpleDateFormat("ddMMyyyyHHmm");
    String result = df.format(now.getTime());

不推荐使用java.util.Date上的许多方法,通常首选通过Calendar类访问当前时间。

检查javadoc for SimpleDateFormat以优化输出以获得所需的确切字符串。

答案 2 :(得分:0)

查看Date课程。随机谷歌示例:http://www.java-examples.com/simple-java-date-example

答案 3 :(得分:0)

除了Date之外,另一个选项是使用Calendar,这似乎是Date的非弃用替代品。它可以让你查询一大堆关于不同信息的信息,你可以从中构建你的字符串。

出于好奇,您确定要存储具有此结构的文件吗?似乎使用其他一些格式(可能是自UNIX纪元开始以来的秒数)可能更容易解析。

编辑:澄清一下,Date本身并未弃用;相反,你用来从中提取格式化数据的大部分方法都是。感谢评论者指出这一点!

答案 4 :(得分:0)

您需要DateSimpleDateFormat。这应该做你想要的:

new SimpleDateFormat("yyyyMMddHHmm").format(new Date())

答案 5 :(得分:0)

您可以使用Java的Calendar类来获取此信息。有关日历的更多信息,请点击此处

http://download.oracle.com/javase/1.4.2/docs/api/java/util/Calendar.html

做你想做的事 - 你会做这样的事情:

Calendar now = Calendar.getInstance(); // Gives you the current time
String fileName = now.get(Calendar.DAY_OF_MONTH) + now.get(Calendar.MONTH) + now.get(Calendar.YEAR) + now.get(Calendar.HOUR) + now.get(Calendar.MINUTE);

答案 6 :(得分:0)

我的回答假设您同意最好将年份放在第一年,按年份按顺序按时间顺序排序。如果没有,请按照您的方式旋转格式代码。

使用第三方库Joda-Time 2.3而不是臭名昭着的java.util.Date/Calendar类。

如果要混合来自可能位于不同时区的不同计算机中的这些文件,或者是在时区之间移动的计算机,则最好记录UTC / GMT日期时间(否)时区偏移,结尾的'Z'表示Zulu time)。

// © 2013 Basil Bourque. This source code may be used freely forever by anyone taking full responsibility for doing so.
// import org.joda.time.*;
// import org.joda.time.format.*;

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

DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyyMMddHHmmss");
System.out.println( "now in local terms: " + formatter.print( now ) );

DateTimeFormatter formatterUtcIso = ISODateTimeFormat.dateHourMinute().withZoneUTC();
//DateTimeFormatter formatterUtcIso = ISODateTimeFormat.basicDateTimeNoMillis().withZoneUTC();
System.out.println( "now in UTC for ISO: " + formatterUtcIso.print( now ) );

DateTimeFormatter formatterUtcIsoSpaced = DateTimeFormat.forPattern("yyyy-MM-dd HH-mm-ss'Z'").withZone( DateTimeZone.UTC );
System.out.println( "now in UTC for ISO with a space: " + formatterUtcIsoSpaced.print( now ) );

跑步时......

now in local terms: 20131223203714
now in UTC for ISO: 2013-12-24T04:37
now in UTC for ISO with a space: 2013-12-24 04-37-14Z