我可以将日期和时间打印到屏幕上,但我无法将其打印到指定的文本文档:
import java.sql.Timestamp;
import java.util.Date;
import java.io.FileNotFoundException;
import java.io.PrintStream;
import java.io.FileWriter;
public class GetCurrentTimeStamp
{
public static void main( String[] args ) throws FileNotFoundException
{
PrintStream output = new PrintStream ("transaction-list.txt");
java.util.Date date= new java.util.Date();
System.out.print(date);
output.close();
}
}
答案 0 :(得分:2)
试试这个:
output.print(date);
而不是System.out.print(date);
答案 1 :(得分:1)
System.out.print()写入系统控制台,而不是文件。您正在创建PrintStream,然后将日期输出写入控制台。试试这个:
PrintStream ps = new PrintStream("transaction-list.txt");
Date date = new Date();
ps.println(date.toString());
ps.close
答案 2 :(得分:0)
试试这个
PrintWriter output = new PrintWriter(new BufferedWriter(new FileWriter("transaction-list.txt", true))) // take away true, if you dont want it to append.
output.println(date);
答案 3 :(得分:0)
以UTC获取当前时间的现代方式:
String output = Instant.now().toString(); // In UTC, standard format.
或,划为:
String output = ZonedDateTime.now( ZoneId.of( "America/Montreal" ) ).toString();
其他答案是正确的,但现在使用{8}内置的Java.time类已经过时了java.util.Date
。
Instant
类代表UTC中时间轴上的一个时刻,分辨率高达纳秒。
Instant instant = Instant.now();
ISO 8601使用的标准toString
格式可能就是您所需要的。最后的Z
是Zulu
的缩写,表示UTC。
String output = Instant.now().toString(); // 2011-12-03T10:15:30.728Z
通常最好在UTC中执行业务逻辑和数据交换。但是,如果您的用户或数据接收器需要,您可以应用时区(ZoneId
)来获取ZonedDateTime
对象。指定proper time zone name,而不是媒体中显示的EST
或IST
等3-4个缩写。
ZoneId zoneId = ZoneId.of( "America/Montreal" );
ZonedDateTime zdt = ZonedDateTime.ofInstant( instant , zoneID );
String output = zdt.toString(); // 2011-12-03T05:15:30.728-05:00[America/Montreal]
您可以跳过Instant
对象作为快捷方式。
ZonedDateTime zdt = ZonedDateTime.now( zoneId );
将所有这些拼凑在一起。
String output = ZonedDateTime.now( ZoneId.of( "America/Montreal" ) ).toString();
对于其他格式,请搜索DateTimeFormatter
的堆栈溢出。