我从API获得的日期值为“ date_display”:“ 13/03/2018”。现在如何显示日期为2018年3月13日,以及如何获取该日期的日值并在TextView中显示它?
@Order
答案 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;
}
更多格式请参考此链接
答案 6 :(得分:0)
使用LocalDate
和DateTimeFormatter
:
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);