当前位置: 代码迷 >> java >> 数字日期格式
  详细解决方案

数字日期格式

热度:44   发布时间:2023-07-31 11:54:42.0

如何在Android Studio中将日期格式从14-feb-2019更改为14-02-2019,实际上我在选择系统日期,但是我想在Android Studio中将2月更改为月号,这是我的代码段:

eddate = (EditText) findViewById(R.id.editdate);
edtime = (EditText) findViewById(R.id.editime);
eddate.setFocusable(false);
Calendar calendar = Calendar.getInstance();
String currentDate = DateFormat.getDateInstance().format(calendar.getTime());
String[] arr=currentDate.split(" ");
String date=arr[0]+"-"+arr[1]+"-"+arr[2];
// Toast.makeText(this, ""+date, Toast.LENGTH_SHORT).show();
eddate.setText(date);

您正在为区域设置使用内置的日期格式,这是一个好主意。 很简单,您正在利用某人知道这种格式的外观,并且您的代码非常适合国际化。 这样做时,您可以选择所需格式的长度。 您可能执行了以下操作:

    ZoneId zone = ZoneId.of("Asia/Karachi");
    Locale pakistan = Locale.forLanguageTag("en-PK");
    DateTimeFormatter mediumFormatter = DateTimeFormatter
            .ofLocalizedDate(FormatStyle.MEDIUM).withLocale(pakistan);

    LocalDate today = LocalDate.now(zone);
    System.out.println(today.format(mediumFormatter));

15月 - 2019

在我的代码段中,我指定了一种中等格式。 我认为您最好的选择是使用短格式:

    DateTimeFormatter shortFormatter = DateTimeFormatter
            .ofLocalizedDate(FormatStyle.SHORT).withLocale(pakistan);
    System.out.println(today.format(shortFormatter));

15/02/2019

这使用斜杠代替连字符。 我相信这是您文化中的人们通常期望以短格式写的日期。 这样您就省去了字符串操作或其他手工格式化的麻烦。

在我的代码片段中,我使用的是java.time,这是现代的Java日期和时间API。 CalendarDateFormat早已过时,尤其以麻烦着称。 现代的API更好用。

免责声明:我已经在Java 10上运行了代码片段。Android上的输出可能会有所不同。 我不会太担心。 在所有情况下,都必须谨慎选择内置的本地化格式。

问题:我可以在Android上使用java.time吗?

是的,java.time在较新和较旧的Android设备上均可正常运行。 它至少需要Java 6

  • 在Java 8和更高版本以及更新的Android设备(来自API级别26)中,内置了现代API。
  • 在Java 6和7中,获取ThreeTen Backport,这是现代类的backport(JSR 310的ThreeTen;请参见底部的链接)。
  • 在较旧的Android上,请使用Android版本的ThreeTen Backport。 它称为ThreeTenABP。 并确保使用子包从org.threeten.bp导入日期和时间类。

链接

  • 说明如何使用java.time。
  • ,其中首先描述了java.time
  • ,即java.time到Java 6和7的java.time移植(JSR-310的ThreeTen)。
  • ,Android版本的ThreeTen Backport
  • ,并有非常详尽的解释。
String dateFormat= "dd-MM-yyyy";
Date date = calendar.getTime();
String dateText= new SimpleDateFormat(dateFormat).format(date);

试试这个会帮助你

public class Test {

    public static void main(String[] args) {
        String parseddate = parseDateToddMMyyyy("14-feb-2019");
        System.out.println(parseddate);
    }


    public static String parseDateToddMMyyyy(String time) {
        String outputPattern = "dd-MM-yyyy";
        String inputPattern= "dd-MMM-yyyy";
        SimpleDateFormat inputFormat = new SimpleDateFormat(inputPattern);
        SimpleDateFormat outputFormat = new SimpleDateFormat(outputPattern);

        Date date = null;
        String str = null;

        try {
            date = inputFormat.parse(time);
            str = outputFormat.format(date);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return str;
    }

}
  相关解决方案