日期转换

发布于 2024-12-25 07:38:38 字数 227 浏览 1 评论 0原文

我得到两种不同格式的日期。
1) 2012-01-05
2) 2012年5月1日
但我希望采用以下格式。 “2011 年 1 月 5 日”

现在我有 String d1="2012-01-05"String d2="2012-01-05"。< /代码>

I am getting date in two different formats.
1) 2012-01-05
2) 05/01/2012
But I want this to be in the below format. "5 Jan 2011"

Now I'm having String d1="2012-01-05" and String d2="2012-01-05".

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

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

发布评论

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

评论(5

つ可否回来 2025-01-01 07:38:38
SimpleDateFormat formatter = new SimpleDateFormat("dd MMM yyyy");  
String now = formatter.format(new Date());

这是你想要的权利...

或者

String oldString = "2009-12 Dec";
Calendar calendar = Calendar.getInstance();
calendar.setTime(new SimpleDateFormat("yyyy-MM").parse(oldString)); // Yes, month name is ignored but we don't need this.
calendar.set(Calendar.DATE, calendar.getActualMaximum(Calendar.DATE));
String newString = new SimpleDateFormat("dd-MMM-yyyy").format(calendar.getTime()).toUpperCase();
System.out.println(newString); // 31-DEC-2009
SimpleDateFormat formatter = new SimpleDateFormat("dd MMM yyyy");  
String now = formatter.format(new Date());

this u want right...

or

String oldString = "2009-12 Dec";
Calendar calendar = Calendar.getInstance();
calendar.setTime(new SimpleDateFormat("yyyy-MM").parse(oldString)); // Yes, month name is ignored but we don't need this.
calendar.set(Calendar.DATE, calendar.getActualMaximum(Calendar.DATE));
String newString = new SimpleDateFormat("dd-MMM-yyyy").format(calendar.getTime()).toUpperCase();
System.out.println(newString); // 31-DEC-2009
趁年轻赶紧闹 2025-01-01 07:38:38

java.time

您需要一个带有两个可选模式的 DateTimeFormatter,用于将日期时间字符串解析为 LocalDate 的实例。然后,您需要一个 DateTimeFormatterLocalDate 实例格式化为所需的模式。

演示

import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.Locale;
import java.util.stream.Stream;

public class Main {
    public static void main(String[] args) {
        DateTimeFormatter parser = DateTimeFormatter.ofPattern("[uuuu-MM-dd][dd/MM/uuuu]", Locale.ENGLISH);
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("d MMM uuuu", Locale.ENGLISH);

        Stream.of(
                "2012-01-05",
                "05/01/2012"
            )
            .map(s -> LocalDate.parse(s, parser))
            .map(d -> d.format(formatter))
            .forEach(System.out::println);
    }
}

输出

5 Jan 2012
5 Jan 2012

在线演示< /a>

Trail 了解有关现代日期时间 API 的更多信息:日期时间

java.time

You need a DateTimeFormatter with two optional patterns for parsing your date-time strings into instances of LocalDate. Then, you need a DateTimeFormatter to format the LocalDate instances into the desired pattern.

Demo:

import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.Locale;
import java.util.stream.Stream;

public class Main {
    public static void main(String[] args) {
        DateTimeFormatter parser = DateTimeFormatter.ofPattern("[uuuu-MM-dd][dd/MM/uuuu]", Locale.ENGLISH);
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("d MMM uuuu", Locale.ENGLISH);

        Stream.of(
                "2012-01-05",
                "05/01/2012"
            )
            .map(s -> LocalDate.parse(s, parser))
            .map(d -> d.format(formatter))
            .forEach(System.out::println);
    }
}

Output:

5 Jan 2012
5 Jan 2012

ONLINE DEMO

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

孤寂小茶 2025-01-01 07:38:38

看一下这里:如何解析日期?

你必须确定,使用哪种格式,然后创建适当的模式。

解析日期后,如果需要字符串,可以使用另一种模式对其进行格式化:

SimpleDateFormat formatter = new SimpleDateFormat("dd MMM yyyy");  
String now = formatter.format(new Date());

Take a look here: How to parse a date?

You have to determine, which format is used and than create a appropriate pattern.

After parsing the date, you can format it with another pattern, if you need a String:

SimpleDateFormat formatter = new SimpleDateFormat("dd MMM yyyy");  
String now = formatter.format(new Date());
一个人的旅程 2025-01-01 07:38:38
String d1 = "2012-01-05";
String d2 = "05/01/2012";
SimpleDateFormat curFormater1 = new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat curFormater2 = new SimpleDateFormat("dd/MM/yyyy");
Date dateObj1 = null;

Date dateObj2 = null;
try {
    dateObj1 = curFormater.parse(d1);
    dateObj2 = curFormater.parse(d2);
} catch (ParseException e) {
    e.printStackTrace();
}

SimpleDateFormat formatter = new SimpleDateFormat("dd MMM yyyy");
String date_new1 = formatter.format(d1);
String date_new2 = formatter.format(d2);

尝试这个代码它将帮助你解决你的问题

String d1 = "2012-01-05";
String d2 = "05/01/2012";
SimpleDateFormat curFormater1 = new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat curFormater2 = new SimpleDateFormat("dd/MM/yyyy");
Date dateObj1 = null;

Date dateObj2 = null;
try {
    dateObj1 = curFormater.parse(d1);
    dateObj2 = curFormater.parse(d2);
} catch (ParseException e) {
    e.printStackTrace();
}

SimpleDateFormat formatter = new SimpleDateFormat("dd MMM yyyy");
String date_new1 = formatter.format(d1);
String date_new2 = formatter.format(d2);

try this code it will help you so solve your problem

不必你懂 2025-01-01 07:38:38

这应该以您想要的格式检索日期。简单的几行。

            String pattern = "dd MMM yyyy";
            SimpleDateFormat format = new SimpleDateFormat(pattern);

            System.out.println(format.format(new Date()));

This should retrieve the date in the format you want. Simple few lines.

            String pattern = "dd MMM yyyy";
            SimpleDateFormat format = new SimpleDateFormat(pattern);

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