亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Simpledateformat 解析字符串日期錯誤

Simpledateformat 解析字符串日期錯誤

智慧大石 2023-05-10 17:16:29
我正在嘗試將數據從字符串轉換為Data類,以便稍后將其與其他數據進行比較。我的數據格式:(dd-MM-yyyy例如 31-07-2019)。問題是在format.parse("string date")運行后它顯示了錯誤的數據格式:Wed Jul 31 00:00:00 UTC 2019這是我的代碼:import java.text.SimpleDateFormat;import java.text.ParseException;import java.io.ByteArrayInputStream;import java.io.File;import java.io.InputStream;import java.util.*;public class Program {    public static void main(String[] args) {        SimpleDateFormat format = new SimpleDateFormat("dd-MM-yyyy");        try {            String dateString = format.format(new Date());            String dateStr = "31-07-2019";            Date date = format.parse(dateStr);            System.out.println(dateString);            System.out.println(date);        } catch (ParseException e) {            System.out.println("ParseError " + e.getMessage());        }           }}dateString(這是當前日期)解析成功。
查看完整描述

3 回答

?
牛魔王的故事

TA貢獻1830條經驗 獲得超3個贊

將java.timeinstead of用于java.util日期和時間以及格式化和解析。


public static void main(String args[]) throws Exception {

    // create a custom formatter for your pattern       

    DateTimeFormatter euroDtf = DateTimeFormatter.ofPattern("dd-MM-yyyy");

    // receive today's date

    LocalDate today = LocalDate.now();

    // parse a date that has the form of your pattern using your custom formatter

    LocalDate parsedDate = LocalDate.parse("31-07-2019", euroDtf);


    System.out.println("Today is " + today.format(euroDtf));

    System.out.println("Parsed date is " + parsedDate.format(euroDtf));

}


查看完整回答
反對 回復 2023-05-10
?
HUX布斯

TA貢獻1876條經驗 獲得超6個贊

我會說SimpleDateFormat是遺留的,使用 jdk-8LocalDate


DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd-MM-yyyy");

LocalDate date1 = LocalDate.parse("31-07-2019",formatter);

LocalDate date2 = LocalDate.now();

你也可以使用isBefore, isAfter進行比較


date1.isAfter(date2);

date2.isBefore(date2);

默認情況下以格式LocalDate返回日期ISO-8601


ISO-8601 日歷系統中沒有時區的日期,例如 2007-12-03。


比較后,您可以LocalDate使用相同的格式化程序將其格式化為字符串


String date2 = LocalDate.now().format(formatter);

SimpleDateFormat.parse返回java.util.Date對象


public Date parse(String source) throws ParseException

并Date.toString()代表模式的字符串


public String toString()


?Converts this Date object to a String of the form:


? ? ?dow mon dd hh:mm:ss zzz yyyy


查看完整回答
反對 回復 2023-05-10
?
一只斗牛犬

TA貢獻1784條經驗 獲得超2個贊

這是預期的行為

Date 類代表一個特定的時間點,精度為毫秒。

format() 將以“格式”生成日期的字符串表示形式。parse() 將返回一個日期對象,該對象始終采用“Fri Aug 02 16:14:21 SGT 2019”格式。

這里需要注意的是,構造函數中提供的模式應該與使用 parse 方法解析的日期格式相同。


查看完整回答
反對 回復 2023-05-10
  • 3 回答
  • 0 關注
  • 279 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號