我想获得这样的格式:
2013-06-15-17-45
我在代码中执行以下操作:
Date d = new Date();
SimpleDateFormat ft = new SimpleDateFormat ("YYYY_MM_DD_HH_mm");
String fileName = "D:\\"+ft.format(d)+".csv";
但我没有让DD正确。它创建一个名称如下的文件:
D:\\2013_12_340_13_53.csv
答案 0 :(得分:5)
资本“D”是一年中的一天;小写“d”是月中的某一天(SimpleDateFormat
javadocs)。尝试:
SimpleDateFormat ft = new SimpleDateFormat ("yyyy_MM_dd_HH_mm");
此外,资本“Y”是“周年”;通常使用小写“y”(“年”)。
答案 1 :(得分:0)
answer by rgettman是正确的。
这是相同类型的代码,但在Java 7中使用Joda-Time 2.3。
// © 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();
DateTimeFormatter formatter = DateTimeFormat.forPattern( "yyyy_MM_dd_HH_mm" );
System.out.println( "now ISO 8601 format: " + now.toString() );
System.out.println( "now in special format: " + formatter.print( now ) );
跑步时......
now ISO 8601 format: 2013-12-06T20:02:52.070-08:00
now in special format: 2013_12_06_20_02
我在标记文件和文件夹时执行相同类型的日期时间。我建议使用更接近标准ISO 8601格式的格式。
Joda-Time的内置格式接近我们需要的dateHourMinute()
类ISODateTimeFormat
。
要与文件系统一起使用,我们应该避免使用斜杠(Unix),反斜杠(MS Windows)和冒号(Mac)字符。从ISO格式开始,我们没有斜杠或反斜杠字符。只留下时间部分的冒号,通过调用Java中replaceAll
类的String
方法来删除。
您可能也希望替换T
。
// import org.joda.time.*;
// import org.joda.time.format.*;
DateTime now = new DateTime();
System.out.println( "now: " + now );
DateTimeFormatter formatter = ISODateTimeFormat.dateHourMinute();
String formatted = formatter.print( now ).replaceAll( ":", "." ).replaceAll( "T", "_" );
System.out.println( "formatted: " + formatted );
跑步时......
now: 2013-12-06T21:10:07.382-08:00
formatted: 2013-12-06_21.10
此外,对于服务器端或其他严肃的工作,请考虑转换为UTC而不是当地时间以避免歧义。
DateTime now = new DateTime();
System.out.println( "now: " + now );
DateTimeFormatter formatter = ISODateTimeFormat.dateHourMinute();
String formatted = formatter.print( now.toDateTime( DateTimeZone.UTC ) ).replaceAll( ":", "." ).replaceAll( "T", "_" ) + "Z";
System.out.println( "formatted: " + formatted );
跑步时......
now: 2013-12-06T21:21:00.128-08:00
formatted: 2013-12-07_05.21Z