如何在Java中获取当前的时间和日期? 我想根据日期和时间命名文件。
例如:if:
Day : march 25th, 1993
Hour : 12.20 pm
然后文件名应为:250319931220
这是我初学者可以实现的吗?
谢谢
答案 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)
您需要Date
和SimpleDateFormat
。这应该做你想要的:
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