Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.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
Java DateTime格式需要与预期相同的技术_Java_Date_Datetime_Format - Fatal编程技术网

Java DateTime格式需要与预期相同的技术

Java DateTime格式需要与预期相同的技术,java,date,datetime,format,Java,Date,Datetime,Format,我想将时间显示为2020年9月2日凌晨12:24(注意日期和时间之间的) 我目前使用的格式是“dd-MMM-yyy-hh:mm-aaa”, 它将时间显示为“2020年8月28日上午11:32” 如何在时间之前将置于位置?您可以通过将字符串文字用单引号(“)括起来,将其添加到日期格式中: SimpleDateFormat formatter = new SimpleDateFormat("dd MMM yyyy 'at' HH:mm:ss z"); Date date = n

我想将时间显示为2020年9月2日凌晨12:24(注意日期和时间之间的

我目前使用的格式是“dd-MMM-yyy-hh:mm-aaa”,
它将时间显示为
“2020年8月28日上午11:32”


如何在时间之前将置于位置?

您可以通过将字符串文字用单引号(
)括起来,将其添加到日期格式中:

SimpleDateFormat formatter = new SimpleDateFormat("dd MMM yyyy 'at' HH:mm:ss z"); 
Date date = new Date(System.currentTimeMillis()); 
System.out.println(formatter.format(date));
SimpleDateFormat sdf=新的SimpleDateFormat(“dd-MMM-yyyy”在“hh:mm-aaa”);
//这里-------------------------------------------------^--^
String formatted=sdf.format(myDateVariable);

只需将单词用单引号括起来即可

"dd MMM yyyy 'at' hh:mm aaa"
如果用于此,可以定义
java.time.format.DateTimeFormatter
来解析
字符串
,使用它将
字符串
解析为
java.time.LocalDateTime
,并定义和使用另一个
DateTimeFormatter
,该
DateTimeFormatter包含
at
在模式中通过单引号将其转义:

public static void main(String[] args) {
    String dateTime = "02 Sep 2020 12:24 AM";
    DateTimeFormatter parserDtf = DateTimeFormatter.ofPattern("dd MMM uuuu hh:mm a",
                                                                Locale.ENGLISH);
    DateTimeFormatter outputDtf = DateTimeFormatter.ofPattern("dd MMM uuuu 'at' hh:mm a",
                                                                Locale.ENGLISH);
    LocalDateTime ldt = LocalDateTime.parse(dateTime, parserDtf);
    System.out.println(ldt.format(outputDtf));
}
此代码生成输出

2020年9月2日凌晨12:24

你能告诉我样本是什么语言吗?什么是
Convert
,什么是
ToString
?SimpleDateFormat格式化程序=新的SimpleDateFormat(“dd-MMM-yyyy”在'HH:mm:ss z');日期日期=新日期(System.currentTimeMillis());System.out.println(formatter.format(日期));然后你应该用那条评论替换答案内容,C#答案在这里是无用的。请不要教年轻人使用过时且臭名昭著的
SimpleDateFormat
类。至少不是第一个选择。而且不是毫无保留的。今天,我们有了更好的in及其
DateTimeFormatter
。问题是关于格式化日期字符串中的
at
,使用单引号
'at'
的解决方案对两者都是一样的。通过宣传新的API来掩盖答案的相关部分会适得其反。我没有投反对票,因为这里没有错,但我也没有投赞成票,因为不必要的说教对问题无关紧要。@Andreas好的,我把开头的话改了一点,让它不那么说教。我仍然想告诉OPs谁使用
java.text.simpleDataFormat
关于
java.time
并不是完全没有必要的。我承认,他们可能知道这一点,并出于某些原因使用过时的API,但在许多情况下,他们只是不知道
java.time
。在问题中,您在哪里看到有人提到
SimpleDataFormat
?你开始讲道,但问题同样适用于这两种API。你怎么知道OP还没有使用时间API?当你的热情完全没有根据时,请控制住它。@Andreas我不知道,它既没有被提及,也没有被标记。我刚刚看到了使用
SimpleDateFormat
提供的答案,没有发现任何说明。。。但是我使用的是
java.time
。。。这让我在
java.time
@Andreas中鼓吹了一个解决方案,我希望在OP再次上线时能找到任何回应,可能会发表评论、编辑问题或接受其中一个答案。可能需要一段时间,永远不会发生,我们会或我会看看。这可能是一个错误的结论,但目前还不能确定。请不要教年轻人使用早已过时且臭名昭著的
SimpleDateFormat
类。至少不是第一个选择。而且不是毫无保留的。今天,我们在及其
DateTimeFormatter
@OleV.V中有了更好的功能。在安卓系统上,当安卓8的最小版本为required@Vlad问题不在于Android。对于较旧的Android,您可以通过或通过使用java.time。尽管如此,如果答案是这是一个针对旧版安卓系统的答案,那么它会更有帮助,并且导致其他人误入歧途的风险也会更小。