如何将当前日期和时间打印到外部文本文档?

时间:2014-12-08 21:39:46

标签: java file date time printing

我可以将日期和时间打印到屏幕上,但我无法将其打印到指定的文本文档:

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(); 
  }
}

4 个答案:

答案 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)

TL;博士

UTC获取当前时间的现代方式:

String output = Instant.now().toString(); // In UTC, standard format.

或,划为:

String output = ZonedDateTime.now( ZoneId.of( "America/Montreal" ) ).toString();

java.time

其他答案是正确的,但现在使用{8}内置的Java.time类已经过时了java.util.Date

Instant类代表UTC中时间轴上的一个时刻,分辨率高达纳秒。

Instant instant = Instant.now();

ISO 8601使用的标准toString格式可能就是您所需要的。最后的ZZulu的缩写,表示UTC

String output = Instant.now().toString();  // 2011-12-03T10:15:30.728Z

通常最好在UTC中执行业务逻辑和数据交换。但是,如果您的用户或数据接收器需要,您可以应用时区(ZoneId)来获取ZonedDateTime对象。指定proper time zone name,而不是媒体中显示的ESTIST等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的堆栈溢出。