【问题标题】:how to format string datetime in android [duplicate]如何在android中格式化字符串日期时间[重复]
【发布时间】:2020-05-12 08:39:30
【问题描述】:

我从肥皂网络服务获取日期时间数据以获取字符串:2020-05-03T00:00:00。 有没有办法将字符串拆分为dd / mm / yyyy,如果为null则省略? 我正在使用 substring(0,10) ,但效果不是很好。

【问题讨论】:

  • 这能回答你的问题吗? How to format date and time in Android?
  • 你用什么语言编程?你得到的是一个 ISOformatted Date,每种语言都有日期转换器和格式化程序来处理它。但如果你不告诉我们……那你就得自己研究了。
  • 我的问题很相似,但答案并没有解决我的问题。
  • 欢迎来到 Stack Overflow。请再次查看How do I ask a good question?。在您的问题中,请报告您的搜索结果以及它是如何无益或不足的。然后我们会更好地了解您的情况,并能更好地帮助您。引用链接:包括指向相关问题的链接没有帮助其他人了解您的问题与其他问题有何不同。

标签: java android date date-formatting android-date


【解决方案1】:

你可以这样做。

解析输入字符串。

LocalDateTime dateTime = LocalDateTime.parse("2020-05-03T00:00:00");

生成表示该LocalDateTime 对象值的文本。

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd/MM/yyyy");
String dateTimeString = dateTime.format(formatter);
System.out.println(dateTimeString);

03/05/2020

对于 26 岁之前的早期 Android,请参阅 ThreeTenABPThreeTen-Backport 项目,这是大部分 java.time 的后向端口功能。

【讨论】:

    【解决方案2】:

    试试这个

      try {
                SimpleDateFormat inputFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
                SimpleDateFormat outputFormat = new SimpleDateFormat("dd-MM-yyyy");
                Date date = null;
                date = inputFormat.parse("2020-05-03T00:00:00");
                String formattedDate = outputFormat.format(date);
                System.out.println("coverted: "+formattedDate);
            } catch (ParseException e) {
                e.printStackTrace();
            }
    

    输出:03-05-2020

    【讨论】:

    • 这些糟糕的日期时间类在几年前被 JSR 310 中定义的 java.time 类所取代。请参阅Answer by Zameer 中的现代解决方案。
    【解决方案3】:

    您可以使用java Calendar 类来获取日期、月份和年份,如下所示

        String s = "2020-05-03T00:00:00";
        Calendar calendar = new GregorianCalendar();
        DateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
        Date dateObj = null;
        try {
            dateObj = format.parse(s);
            calendar.setTime(dateObj);
            int date = calendar.get(Calendar.DATE);
            int month = calendar.get(Calendar.MONTH) + 1;// As start from 0
            int year = calendar.get(Calendar.YEAR);
            System.out.println("Formatted Date -> "+ date + "/" + month + "/" +year);
        } catch (ParseException e) {
            e.printStackTrace();
        }
    

    将其转换为日历类对象后,您可以做更多事情,例如小时、分钟、星期几等

    【讨论】:

      猜你喜欢
      • 2013-04-01
      • 2012-01-07
      • 1970-01-01
      • 2023-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-04
      • 1970-01-01
      相关资源
      最近更新 更多