Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SimpleDataFormat()为24小时,java为毫秒_Java_Date_Time_Format - Fatal编程技术网

SimpleDataFormat()为24小时,java为毫秒

SimpleDataFormat()为24小时,java为毫秒,java,date,time,format,Java,Date,Time,Format,我正在构建一个DAQ软件,现在我正在创建一个日志文件。我想在每个条目上显示时间。下面是一个无法编译的简单代码 import java.util.Date; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Calendar; public class daq(){ SimpleDateFormat now = new SimpleDateFormat("hh:mm:ss")

我正在构建一个DAQ软件,现在我正在创建一个日志文件。我想在每个条目上显示时间。下面是一个无法编译的简单代码

import java.util.Date;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;

public class daq(){

    SimpleDateFormat now = new SimpleDateFormat("hh:mm:ss");

    public void go(){
        report.setProperty("INSERT", "["+now.format(new Date())+"] Acquisition Started\n");
    }
    public void init(){
        report.setProperty("INSERT", "["+now.format(new Date())+"] ADC Channel 1: Read Complete\n");
        report.setProperty("INSERT", "["+now.format(new Date())+"] Initialisation Complete\n");
    }
    public void stop(){
        report.setProperty("INSERT", "["+now.format(new Date())+"] Acquisition Stopped\n");
    }

}
[06:30:09] Acquisition Started
[06:30:09] ADC Channel 1: Read Complete
[06:30:09] Initialisation Complete
[06:30:13] Acquisition Stopped
上述“代码”的典型结果如下所示

import java.util.Date;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;

public class daq(){

    SimpleDateFormat now = new SimpleDateFormat("hh:mm:ss");

    public void go(){
        report.setProperty("INSERT", "["+now.format(new Date())+"] Acquisition Started\n");
    }
    public void init(){
        report.setProperty("INSERT", "["+now.format(new Date())+"] ADC Channel 1: Read Complete\n");
        report.setProperty("INSERT", "["+now.format(new Date())+"] Initialisation Complete\n");
    }
    public void stop(){
        report.setProperty("INSERT", "["+now.format(new Date())+"] Acquisition Stopped\n");
    }

}
[06:30:09] Acquisition Started
[06:30:09] ADC Channel 1: Read Complete
[06:30:09] Initialisation Complete
[06:30:13] Acquisition Stopped
我想知道是否有办法以24小时格式显示时间(即
18:30:09
而不是
06:30:09

是否还有显示毫秒的方法?类似于
hh:mm:ss:mils的格式
?我尝试使用
sss
而不是
ss
,但第一次
s
我只得到了
0
。一个示例输出是

[21:50:004] Acquisition Started
[21:50:004] ADC Channel 1: Read Complete
[21:50:004] Initialisation Complete
[21:50:013] Acquisition Stopped

您应该使用
HH
而不是
HH

SimpleDateFormat now = new SimpleDateFormat("HH:mm:ss");
试试这个:-

SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss:SSS");
希望它能帮助您。

时区 这些问题和答案忽略了时区的问题。通常,最好在UTC(无时区偏移)中进行记录,以避免歧义,并避免对夏令时的混淆

ISO 8601 ISO 8601标准定义了日期时间值的文本表示格式。这种格式在日志记录中特别有用

乔达时间 Joda Time library支持时区,具有UTC时区的内置常量,并使用ISO 8601格式,默认为24小时时钟

String output = DateTime.now( DateTimeZone.UTC ).toString();

06:30:09PM相当于18:30:09,而不是16:30:09;)@朱利安:哎呀!!!我会改正的!!!谢谢!!!我提到这一点是为了阻止你去寻找为什么你得到了18分,而你期望得到16分;)@朱利安:我真的期望18岁,所以这不是问题!不管怎样,谢谢你@Thanos您是否阅读了
SimpleDataFormat
的文档?你会得到所有的格式。顺便说一句,您使用的是
SSS
。我已经尝试了
SSS
,但实际上我没有得到我想要的。请检查我编辑的问题。