java 日期转换

omhiaaxx  于 2023-01-01  发布在  Java
关注(0)|答案(5)|浏览(106)

我得到两种不同格式的日期。
1)第一个月
2)05/01/2012
但我希望这是在下面的格式。"5 Jan 2011"
现在我有了String d1="2012-01-05"String d2="2012-01-05".

zysjyyx4

zysjyyx41#

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
aurhwmvo

aurhwmvo2#

Java.时间

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

    • 演示**:
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

ONLINE DEMO
从**Trail: Date Time**了解有关现代日期-时间API的更多信息。

dzjeubhm

dzjeubhm3#

看看这里:How to parse a date?
您必须确定使用哪种格式,然后创建适当的模式。
解析日期后,如果需要String,可以使用另一种模式对其进行格式化:

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

nkoocmlb4#

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

试试这个代码,它会帮助你解决你的问题

2w2cym1i

2w2cym1i5#

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

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

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

相关问题