如何将Joda-Time DateTime格式化为mm/dd/yyyy?

 敖军士 发布于 2023-02-13 13:43

我有一个字符串" 11/15/2013 08:00:00",我想将其格式化为" 11/15/2013",什么是正确的DateTimeFormatter模式?

我尝试过很多并用Google搜索,但仍无法找到正确的模式.

编辑:我正在寻找Joda-Time DateTimeFormatter,而不是Java的SimpleDateFormat ..

5 个回答
  • 我有一个非常愚蠢但工作的选择.如果你有String fullDate ="11/15/2013 08:00:00";

       String finalDate = fullDate.split(" ")[0];
    

    这应该简单快捷.:)

    2023-02-13 13:44 回答
  • 乔达时间

    创建一个DateTimeFormatter使用DateTimeFormat.forPattern(String)

    使用Joda时间你会这样做:

    String dateTime = "11/15/2013 08:00:00";
    // Format for input
    DateTimeFormatter dtf = DateTimeFormat.forPattern("MM/dd/yyyy HH:mm:ss");
    // Parsing the date
    DateTime jodatime = dtf.parseDateTime(dateTime);
    // Format for output
    DateTimeFormatter dtfOut = DateTimeFormat.forPattern("MM/dd/yyyy");
    // Printing the date
    System.out.println(dtfOut.print(jodatime));
    

    标准Java≥8

    Java 8引入了一个新的日期和时间库,使得处理日期和时间变得更加容易.如果要使用标准Java版本8或更高版本,则可以使用DateTimeFormatter.由于您没有时区String,java.time.LocalDateTime或LocalDate,否则可以使用区域划分的ZonedDateTime和ZonedDate.

    // Format for input
    DateTimeFormatter inputFormat = DateTimeFormatter.ofPattern("MM/dd/yyyy HH:mm:ss");
    // Parsing the date
    LocalDate date = LocalDate.parse(dateTime, inputFormat);
    // Format for output
    DateTimeFormatter outputFormat = DateTimeFormatter.ofPattern("MM/dd/yyyy");
    // Printing the date
    System.out.println(date.format(outputFormat));
    

    标准Java <8

    在Java 8之前,您将使用SimpleDateFormat和java.util.Date

    String dateTime = "11/15/2013 08:00:00";
    // Format for input
    SimpleDateFormat dateParser = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");
    // Parsing the date
    Date date7 = dateParser.parse(dateTime);
    // Format for output
    SimpleDateFormat dateFormatter = new SimpleDateFormat("MM/dd/yyyy");
    // Printing the date
    System.out.println(dateFormatter.format(date7));
    

    2023-02-13 13:45 回答
  • 如果您使用JodaTime,我认为这将有效:

    String strDateTime = "11/15/2013 08:00:00";
    DateTime dateTime = DateTime.parse(strDateTime);
    DateTimeFormatter fmt = DateTimeFormat.forPattern("MM/dd/YYYY");
    String strDateOnly = fmt.print(dateTime);
    

    我从这里得到了一部分.

    2023-02-13 13:45 回答
  • 即使其他答案完全可以接受,我也在这里添加.JodaTime在DateTimeFormat中预先构建了解析器:

    dateTime.toString(DateTimeFormat.longDate());
    

    这是以其格式打印出来的大多数选项:

    shortDate:         11/3/16
    shortDateTime:     11/3/16 4:25 AM
    mediumDate:        Nov 3, 2016
    mediumDateTime:    Nov 3, 2016 4:25:35 AM
    longDate:          November 3, 2016
    longDateTime:      November 3, 2016 4:25:35 AM MDT
    fullDate:          Thursday, November 3, 2016
    fullDateTime:      Thursday, November 3, 2016 4:25:35 AM Mountain Daylight Time
    

    2023-02-13 13:45 回答
  • DateTime date = DateTime.now().withTimeAtStartOfDay();
    date.toString("HH:mm:ss")
    

    2023-02-13 13:45 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有