3 回答
TA贡献1831条经验 获得超4个赞
这是一个使用字符串转换为示例格式的示例,使用 Java 8 中引入的日期 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);
}
}
TA贡献1966条经验 获得超4个赞
日期时间对象没有“格式”
我有一个以下列格式返回的日历(它是 Java 日历类型):2020-02-15T00:00:00。
不,你没有。
一个Calendar对象没有格式。只有表示日期时间值的文本才有格式。
按照这样的日历并坚持日历类型:2018 年 11 月 5 日星期一 14:08:58 GMT+0000(格林威治标准时间)?
没有Calendar具有该格式的对象这样的东西,因为 aCalendar没有格式也不是文本。
学会在发帖前搜索 Stack Overflow。这已经被覆盖了很多次。
时间
Calendar几年前,随着 JAR 310 的采用,java.time类取代了可怕的类。永远不要使用Calendar.
获取类的当前 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以您想要的格式生成文本。
TA贡献1757条经验 获得超8个赞
您可以使用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 + "\"");
}
}
}
添加回答
举报
