首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将SimpleDateFormat一个日期解析为“yyyy”并不是以一种认可的方式工作。

将SimpleDateFormat一个日期解析为“yyyy”并不是以一种认可的方式工作。
EN

Stack Overflow用户
提问于 2020-06-25 08:21:51
回答 1查看 501关注 0票数 2

我试图将这个字符串日期:"2020-06-25T07:48:32Z“解析为"2020-06-25”这样的日期,并执行了如下方法:

代码语言:javascript
运行
复制
        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;
            }

但是我得到了这样的格式:清华六月25 : 00:00:00 CEST 2020

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-25 08:25:02

我强烈建议您使用现代日期时间API而不是破碎的java.util日期时间API。

代码语言:javascript
运行
复制
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);
    }
}

输出:

代码语言:javascript
运行
复制
2020-06-25T07:48:32Z
2020-06-25

但是,如果您仍然希望使用过时的日期-时间API,您可以这样做:

代码语言:javascript
运行
复制
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);
    }
}

输出:

代码语言:javascript
运行
复制
2020-06-25
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62570979

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档