String
将 Date
解析为 apache.commons.lang3.time.DateUtils.parseDate
,但是遇到问题,可能与时区有关。date
,即Wed Jan 10 00:00:00 CST 2024
。date2
与date
、Wed Jan 10 00:00:00 CST 2024
相同,但实际值是Wed Jan 10 14:00:00 CST 2024
。import java.util.Date;
import java.util.Calendar;
public class ClassTest {
private static final String[] parsePatterns = {"EEE MMM dd HH:mm:ss zzz yyyy"};
public void methodTest() throws Exception {
Calendar calendar = Calendar.getInstance();
calendar.set(2024, Calendar.JANUARY, 10, 0, 0, 0);
Date date = calendar.getTime();
System.out.println(date); // Wed Jan 10 00:00:00 CST 2024
Date date2 = org.apache.commons.lang3.time.DateUtils.parseDate(date.toString(), parsePatterns);
System.out.println(date2); // Wed Jan 10 14:00:00 CST 2024
}
public static void main(String[] args) {
ClassTest ct = new ClassTest();
try {
ct. methodTest();
} catch (Exception e) {}
}
}
Java:8
Apache 公共语言:3.9
您需要应用打印或字符串化时创建的格式,但您需要使用正确的日期类,并且不需要第 3 方:
import java.time.*;
import java.time.format.*;
import java.util.Locale;
public class Jan {
public static void main(String[] args) throws Exception {
final String DATE_PAT = "EEE MMM dd HH:mm:ss zzz yyyy";
final String ZONE_PAT = "Asia/Shanghai";
ZonedDateTime janTen = ZonedDateTime.of(2024, Month.JANUARY.getValue(), 10, 0, 0, 0, 0, ZoneId.of(ZONE_PAT));
DateTimeFormatter dtf = DateTimeFormatter.ofPattern(DATE_PAT, Locale.US);
System.out.println(janTen.format(dtf));
String display = dtf.format(janTen);
ZonedDateTime x = ZonedDateTime.parse(display, dtf);
System.out.println(x.format(dtf));
}
}