如何从日期获取日值并将其显示在TextView中?

时间:2018-10-26 12:01:58

标签: android datetime

我从API获得的日期值为“ date_display”:“ 13/03/2018”。现在如何显示日期为2018年3月13日,以及如何获取该日期的日值并在TextView中显示它?

@Order

7 个答案:

答案 0 :(得分:0)

我认为这段代码对我们很有帮助。

 import android.text.format.DateFormat;

 String dayOfTheWeek = (String) DateFormat.format("EEEE", date); // Thursday
 String day          = (String) DateFormat.format("dd",   date); // 20
 String monthString  = (String) DateFormat.format("MMM",  date); // Jun
 String monthNumber  = (String) DateFormat.format("MM",   date); // 06
 String year         = (String) DateFormat.format("yyyy", date); // 2013

答案 1 :(得分:0)

使用此

long date = System.currentTimeMillis();
SimpleDateFormat dateFormat = new SimpleDateFormat("MMM MM dd, yyyy h:mm a");
String dateString = dateFormat.format(date);
view.setText(dateString);

您可以得到这样的输出

2018年10月26日星期五下午4:55

答案 2 :(得分:0)

使用以下代码进行转换:

SimpleDateFormat inputFormat = new SimpleDateFormat("dd/MM/yyyy", Locale.getDefault());
SimpleDateFormat outputFormat = new SimpleDateFormat("dd MMM yyyy", Locale.getDefault());
Date date;
String result = "";
try {
    date = inputFormat.parse("set your date from API here");
    result = outputFormat.format(date);
} catch (e: ParseException) {
    Log.e("Error", "Parse exception", e);
}

答案 3 :(得分:0)

您可以使用SimpleDateFormat类来解析和更改日期格式。

String dd=object.getString("date_display");

// Add these two lines
Date date = new SimpleDateFormat("dd/MM/yyyy").parse(dd);
dd = new SimpleDateFormat("dd MMM yyyy").format(date);

答案 4 :(得分:0)

首先,我不知道您是否控制后端,但您应该以毫秒为单位发送时间而不是日期。这样,UI可以以任何所需的方式格式化时间。

第二,要回答您的问题,您需要解析服务器给出的日期。您正在接收一个字符串,因此您需要将其转换为Date对象。您可以使用 SimpleDateFormat

DateFormat format = new SimpleDateFormat("dd/MM/yyyy ", Locale.getDefault());

try {
    Date date = format.parse(date);
    String day = (String) DateFormat.format("dd", date); // 20

} catch (ParseException e) {
    Logger.get().e(TAG, "getExpirationDate", "ParseException = " + e.getMessage());
}

希望有帮助。

答案 5 :(得分:0)

尝试

使用此方法,您可以将任何日期格式转换为其他日期

 String fromFormat="dd/MM/yyyy";
    String toFormat ="dd MMM yyyy";
    String date = "13/03/2018";

    public static String convertStringDate(String date, String fromFormat, String toFormat) {
        SimpleDateFormat df = new SimpleDateFormat(fromFormat);
        Date d;
        try {
            d = df.parse(date);
            SimpleDateFormat dft = new SimpleDateFormat(toFormat);
            return dft.format(d);
        } catch (java.text.ParseException e) {
        }

        return null;
    }
  

更多格式请参考此链接

Date formats

答案 6 :(得分:0)

使用LocalDateDateTimeFormatter

    String d = "\"date_display\":\"13/03/2018\"";

    d = d.replaceAll("\"", "").replaceAll("date_display:", "");

    LocalDate date = LocalDate.parse(d, DateTimeFormatter.ofPattern("dd/MM/yyyy"));
    String newDate = date.format(DateTimeFormatter.ofPattern("dd MMM yyyy")).toUpperCase();

    System.out.println(newDate);

打印

13 MAR 2018

以及放入TextView的日期:

String day = String.valueOf(date.getDayOfMonth());
textview.setText(day);