我正在开发一个适用于 Android 的 XML 解析器,包含 12 个不同的项目,我需要帮助为每个项目创建日期。这是我到目前为止所拥有的:
TextView detailsPubdate = (TextView)findViewById(R.id.detailspubdate);
我希望日期看起来像这样:9 月 3 日星期六。感谢您的帮助!
如果您正在查找今天的日期,您可以使用
Date
对象来完成此操作。
Date today = new Date();//this creates a date representing this instance in time.
然后将日期传递给
SimpleDateFormat.format(Date)
方法。
// "EEEE, MMMM, d" is the pattern to use to get your desired formatted date.
SimpleDateFormat sdf = new SimpleDateFormat("EEEE, MMMM, d");
String formattedDate = sdf.format(today);
最后,您可以将这个
String
设置到您的TextView
中
detailsPubdate.setText(formattedDate);
SimpleDateFormat
的文档。 该文档显示了可用于格式化 Date
对象的各种模式。
使用 DateFormat 类来格式化日期。
示例:
DateFormat formatter = new SimpleDateFormat("EEE, MMM d");
Date date = (Date) formatter.parse("02.47.44 PM");
detailsPubdate.setText(date.toString());
如果您想更改模式,这是 SimpleDateFormatter 的 java 文档。
目前还不清楚您要做什么,但您可以使用以下内容来格式化日期:
SimpleDateFormat sdf=new SimpleDateFormat("EEEE, MMMM, d");
//get current date
Date date=new Date();
String dateString=sdf.format(date);
SimpleDateFormat
课程。
java.time
2014 年 3 月,Java 8 引入了现代的
java.time
日期时间 API,取代了容易出错的旧版java.util
日期时间 API。任何新代码都应使用 java.time
API*。
我希望日期看起来像这样:9 月 3 日星期六。
除了格式和现代API的使用之外,最需要考虑的一点是
Locale
。您想要获取的文本是英文的;因此,如果您在代码中不使用 Locale
,则输出将采用在执行代码的 JVM 中设置的默认 Locale
。检查始终为自定义格式指定带有日期时间格式化程序的区域设置以了解更多信息。
ZonedDateTime now(ZoneId)
获取当前日期时间并根据需要设置格式。
演示:
public class Main {
public static void main(String args[]) {
// ZoneId.systemDefault() returns the default time zone of the JVM. Replace it
// with the applicable ZoneId e.g., ZoneId.of("America/Los_Angeles")
ZonedDateTime now = ZonedDateTime.now(ZoneId.systemDefault());
// Default format
System.out.println(now);
// Formatted string
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("EEEE, MMMM d", Locale.ENGLISH);
String formattedString = now.format(formatter);
System.out.println(formattedString);
}
}
输出:
2024-11-10T12:02:02.644429400Z[Europe/London]
Sunday, November 10
注意: 无论出于何种原因,如果您需要
java.util.Date
对象的 ZonedDateTime
实例,您可以按如下方式操作:
Date.from(now.toInstant());
从 Trail:日期时间了解有关现代日期时间 API 的更多信息。
* 如果您收到
java.util.Date
对象,请使用 java.time.Instant
将其转换为
Date#toInstant
对象,并从中派生其他 java.time
日期时间对象。