我有一个以以下格式返回的日历(它是 Java 日历类型)2020-02-15T00:00:00
:. 将其转换为像这样的以下日历并保持日历类型的最简单、最短的方法是什么:Mon Nov 05 2018 14:08:58 GMT+0000 (Greenwich Mean Time)
?
在 JavaScript 中,我们可以使用类似的东西var date = new Date();
我有一个以以下格式返回的日历(它是 Java 日历类型)2020-02-15T00:00:00
:. 将其转换为像这样的以下日历并保持日历类型的最简单、最短的方法是什么:Mon Nov 05 2018 14:08:58 GMT+0000 (Greenwich Mean Time)
?
在 JavaScript 中,我们可以使用类似的东西var date = new Date();
这是一个使用 Java 8 中引入的 Date API 将字符串转换为示例格式的示例:
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
class Scratch {
public static void main(String[] args) {
String input = "2020-02-15T00:00:00";
LocalDateTime parsedTime = LocalDateTime.parse(input);
ZonedDateTime zonedDateTime = ZonedDateTime.of(parsedTime, ZoneId.of("GMT"));
String output = DateTimeFormatter.ofPattern("EEE MMM dd yyyy HH:mm:ss Z '('z')'")
.format(zonedDateTime);
System.out.print(output);
}
}
我有一个以以下格式返回的日历(它是 Java 日历类型):2020-02-15T00:00:00。
不,你没有。
对象没有Calendar
格式。只有表示日期时间值的文本才有格式。
遵循这样的日历并坚持日历类型:Mon Nov 05 2018 14:08:58 GMT+0000(格林威治标准时间)?
Calendar
不存在具有该格式的对象之类的东西,因为 aCalendar
没有格式并且不是文本。
在发布之前学习搜索 Stack Overflow。这已经讲过很多次了。
几年前,随着 JAR 310 的采用,这个可怕的Calendar
类被java.timeCalendar
类所取代。永远不要使用.
使用类获取当前 UTC 时间OffsetDateTime
。
OffsetDateTime odt = OffsetDateTime.now( ZoneOffset.UTC ) ;
要生成标准 ISO 8601 格式的文本,请调用toString
. 要将日期时间值保存为文本,请使用这些格式——这就是它们被发明的原因。
要生成另一种格式的文本,请使用DateTimeFormatter
该类。这已经讲过很多次了,所以搜索 Stack Overflow。
如果给定一个对象,通过调用添加到旧遗留类的新方法GregorianCalendar
立即转换为对象。ZonedDateTime
ZonedDateTime zdt = myGregCal.toZonedDateTime() ;
必要时投。
ZonedDateTime zdt = ( (GregorianCalendar) myCal ).toZonedDateTime() ;
然后用于DateTimeFormatter
生成所需格式的文本。
假设你有一个 Calendar cal 的实例,你应该能够做到这一点:
SimpleDateFormat dateFormat = new SimpleDateFormat("EEE MMM dd yyyy HH:mm:ss Z");
String result = dateFormat.format(cal.getTime());
getTime 为您提供 SimpleDateFormat 的日期。
这是处理 Calendar 对象的最简单方法。也是最容易出错的一种。我同意所有关于你应该使用 java.time 的评论,但我是谁来告诉你该怎么做。
您可以使用SimpleDateFormat
import java.text.DateFormat;
import java.util.Date;
import java.text.SimpleDateFormat;
import java.text.ParseException;
public class HelloWorld
{
public static void main(String[] args)
{
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
String dateString = "2020-02-15T00:00:00";
try {
Date parsed = format.parse(dateString);
System.out.print(parsed.toString());
}
catch(ParseException pe) {
System.out.println("ERROR: Cannot parse \"" + dateString + "\"");
}
}
}