Android 使用 SimpleDate 的日期格式

发布于 2024-12-02 13:50:30 字数 207 浏览 1 评论 0原文

我正在为 Android 开发一个包含 12 个不同项目的 XML 解析器,并且我需要帮助为每个项目创建日期。这是我到目前为止所得到的:

TextView detailsPubdate = (TextView)findViewById(R.id.detailspubdate);

我希望日期看起来像这样:9 月 3 日星期六。谢谢您的帮助!

I am working on an XML Parser for Android with twelve different items and I need help creating a date for each item. This is what I have so far:

TextView detailsPubdate = (TextView)findViewById(R.id.detailspubdate);

I am looking to make the date look like this: Saturday, September 3. Thank you for your help!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

莳間冲淡了誓言ζ 2024-12-09 13:50:30

如果您要查找今天的日期,可以使用 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 对象的各种模式。

If you are looking for todays date, you can do this by using the Date object.

Date today = new Date();//this creates a date representing this instance in time.

Then pass the date to the SimpleDateFormat.format(Date) method.

// "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);

Finally, you can set this String into your TextView

detailsPubdate.setText(formattedDate);

Here is the documentation for SimpleDateFormat. The documentation shows the various patterns available to format Date objects.

粉红×色少女 2024-12-09 13:50:30

java.time

2014 年 3 月,Java 8 引入了现代的 java.time 日期时间 API,它取代了 容易出错的遗留 java.util 日期时间 API。任何新代码都应使用 java.time API*

我希望日期看起来像这样:9 月 3 日星期六。

除了格式和现代 API 的使用之外,要考虑的最重要的一点是Locale。您想要获取的文本是英文的;因此,如果您在代码中未使用 Locale,则输出将采用执行代码的 JVM 中设置的默认 Locale。检查始终为自定义格式指定带有日期时间格式化程序的区域设置以了解更多信息。

使用现代日期时间 API 的解决方案

使用 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); // detailsPubdate.setText(formattedString);
    }
}

输出:

2024-11-10T12:02:02.644429400Z[Europe/London]
Sunday, November 10

在线演示

注意:无论出于何种原因,如果您需要 ZonedDateTime 对象的 java.util.Date 实例,您可以按如下方式操作:

Date.from(now.toInstant());

了解更多信息现代日期时间 API来自跟踪:日期时间


* 如果您收到 java.util.Date 对象,请使用 Date#toInstant,并派生其他来自其中的 java.time 日期时间对象。

java.time

In March 2014, Java 8 introduced the modern, java.time date-time API which supplanted the error-prone legacy java.util date-time API. Any new code should use the java.time API*.

I am looking to make the date look like this: Saturday, September 3.

Apart from the format and the use of modern API, the most important point to consider is Locale. The text you want to get is in English; therefore, if you do not use Locale in your code, the output will be in the default Locale set in the JVM in which your code will be executed. Check Always specify a Locale with a date-time formatter for custom formats to learn more about it.

Solution using modern date-time API

Get the current date-time using a ZonedDateTime now(ZoneId) and format it as required.

Demo:

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); // detailsPubdate.setText(formattedString);
    }
}

Output:

2024-11-10T12:02:02.644429400Z[Europe/London]
Sunday, November 10

Online Demo

Note: For whatever reason, if you need an instance of java.util.Date from this object of ZonedDateTime, you can do so as follows:

Date.from(now.toInstant());

Learn more about the modern date-time API from Trail: Date Time.


* If you receive a java.util.Date object, convert it to a java.time.Instant object using Date#toInstant, and derive other java.time date-time objects from it.

孤独陪着我 2024-12-09 13:50:30

目前还不清楚您要做什么,但您可以使用以下内容来格式化日期:

   SimpleDateFormat sdf=new SimpleDateFormat("EEEE, MMMM, d");
   //get current date
   Date date=new Date();
   String dateString=sdf.format(date);

您应该看看 SimpleDateFormat 类。

It is not very clear what you are trying to do, but you could use the following to format date:

   SimpleDateFormat sdf=new SimpleDateFormat("EEEE, MMMM, d");
   //get current date
   Date date=new Date();
   String dateString=sdf.format(date);

You should have a look at the SimpleDateFormat class.

泪冰清 2024-12-09 13:50:30

使用 DateFormat 类来格式化日期。

示例:

     DateFormat formatter = new SimpleDateFormat("EEE, MMM d");
    Date date = (Date) formatter.parse("02.47.44 PM");
detailsPubdate.setText(date.toString());

这是 SimpleDateFormatter 如果你想改变你的模式。

use the DateFormat class to format your dates.

Example:

     DateFormat formatter = new SimpleDateFormat("EEE, MMM d");
    Date date = (Date) formatter.parse("02.47.44 PM");
detailsPubdate.setText(date.toString());

This is the java documentation for SimpleDateFormatter if you want to change your pattern.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文