将 SimpleDateFormat 日期解析为 "yyyy-MM-dd" 未以适当的方式工作
Parsing SimpleDateFormat a Date as "yyyy-MM-dd" is not working in a appropieted way
我正在尝试将这个字符串日期:“2020-06-25T07:48:32Z”解析为像“2020-06-25”这样的日期,我做了这样的方法:
String newDateFormat = "yyyy-MM-dd";
try {
Date newparseDate = new SimpleDateFormat(newDateFormat).parse(date);
System.out.println(newparseDate);
return new SimpleDateFormat(dateTimeFormatPattern).parse(date);
} catch (ParseException px) {
px.printStackTrace();
}
return null;
}
但我得到了这个格式:Thu Jun 25 00:00:00 CEST 2020
我强烈建议您使用 modern date-time API 而不是损坏的 java.util
日期时间 API。
import java.time.LocalDate;
import java.time.ZonedDateTime;
public class Main {
public static void main(String[] args) {
ZonedDateTime zdt = ZonedDateTime.parse("2020-06-25T07:48:32Z");
System.out.println(zdt);
// Your required format can be got by simply using LocalDate which drops the
// time-zone and offset information
LocalDate ldt = zdt.toLocalDate();
System.out.println(ldt);
}
}
输出:
2020-06-25T07:48:32Z
2020-06-25
但是,如果您仍然想使用过时的日期时间API,您可以按如下方式进行:
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Main {
public static void main(String[] args) throws ParseException {
// Format for the given date-time string
SimpleDateFormat oldDateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
// Desired format
SimpleDateFormat newDateFormat = new SimpleDateFormat("yyyy-MM-dd");
// The given date-time string
String dateStr = "2020-06-25T07:48:32Z";
// Parse to java.util.Date
Date newParseDate = oldDateFormat.parse(dateStr);
// Format to the desired format
String newDateStr = newDateFormat.format(newParseDate);
System.out.println(newDateStr);
}
}
输出:
2020-06-25
我正在尝试将这个字符串日期:“2020-06-25T07:48:32Z”解析为像“2020-06-25”这样的日期,我做了这样的方法:
String newDateFormat = "yyyy-MM-dd";
try {
Date newparseDate = new SimpleDateFormat(newDateFormat).parse(date);
System.out.println(newparseDate);
return new SimpleDateFormat(dateTimeFormatPattern).parse(date);
} catch (ParseException px) {
px.printStackTrace();
}
return null;
}
但我得到了这个格式:Thu Jun 25 00:00:00 CEST 2020
我强烈建议您使用 modern date-time API 而不是损坏的 java.util
日期时间 API。
import java.time.LocalDate;
import java.time.ZonedDateTime;
public class Main {
public static void main(String[] args) {
ZonedDateTime zdt = ZonedDateTime.parse("2020-06-25T07:48:32Z");
System.out.println(zdt);
// Your required format can be got by simply using LocalDate which drops the
// time-zone and offset information
LocalDate ldt = zdt.toLocalDate();
System.out.println(ldt);
}
}
输出:
2020-06-25T07:48:32Z
2020-06-25
但是,如果您仍然想使用过时的日期时间API,您可以按如下方式进行:
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Main {
public static void main(String[] args) throws ParseException {
// Format for the given date-time string
SimpleDateFormat oldDateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
// Desired format
SimpleDateFormat newDateFormat = new SimpleDateFormat("yyyy-MM-dd");
// The given date-time string
String dateStr = "2020-06-25T07:48:32Z";
// Parse to java.util.Date
Date newParseDate = oldDateFormat.parse(dateStr);
// Format to the desired format
String newDateStr = newDateFormat.format(newParseDate);
System.out.println(newDateStr);
}
}
输出:
2020-06-25