java 日期格式相互转化

1 java日期format 相关的说明

LETTERDATE OR TIME COMPONENTPRESENTATIONEXAMPLES
GEra designatorTextAD
yYearYear199696
YWeek yearYear200909
MMonth in year (context sensitive)MonthJulyJul07
LMonth in year (standalone form)MonthJulyJul07
wWeek in yearNumber27
WWeek in monthNumber2
DDay in yearNumber189
dDay in monthNumber10
FDay of week in monthNumber2
EDay name in weekTextTuesdayTue
uDay number of week (1 = Monday, …, 7 = Sunday)Number1
aAm/pm markerTextPM
HHour in day (0-23)Number0
kHour in day (1-24)Number24
KHour in am/pm (0-11)Number0
hHour in am/pm (1-12)Number12
mMinute in hourNumber30
sSecond in minuteNumber55
SMillisecondNumber978
zTime zoneGeneral time zonePacific Standard TimePSTGMT-08:00
ZTime zoneRFC 822 time zone-0800
XTime zoneISO 8601 time zone-08-0800-08:00

2 转化示例

  1. import java.text.DateFormat;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    public class DateToStringDemo{
       public static void main(String args[])
       {
           Date todaysDate = new Date();
           DateFormat df = new SimpleDateFormat("dd/MM/yyyy");
           DateFormat df2 = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss");
           DateFormat df3 = new SimpleDateFormat("dd-MMM-yyyy");
           DateFormat df4 = new SimpleDateFormat("MM dd, yyyy");
           DateFormat df5 = new SimpleDateFormat("E, MMM dd yyyy");
           DateFormat df6 = new SimpleDateFormat("E, MMM dd yyyy HH:mm:ss");
           try
           {
               //format() method Formats a Date into a date/time string. 
               String testDateString = df.format(todaysDate);
               System.out.println("String in dd/MM/yyyy format is: " + testDateString);
               String str2 = df2.format(todaysDate);
               System.out.println("String in dd-MM-yyyy HH:mm:ss format is: " + str2);
               String str3 = df3.format(todaysDate);
               System.out.println("String in dd-MMM-yyyy format is: " + str3);
               String str4 = df4.format(todaysDate);
               System.out.println("String in MM dd, yyyy format is: " + str4);
               String str5 = df5.format(todaysDate);
               System.out.println("String in E, MMM dd yyyy format is: " + str5);
               String str6 = df6.format(todaysDate);
               System.out.println("String in E, E, MMM dd yyyy HH:mm:ss format is: " + str6);
           }
           catch (Exception ex ){
              System.out.println(ex);
           }
        }
    }
    //输出
    String in dd/MM/yyyy format is: 02/01/2014
    String in dd-MM-yyyy HH:mm:ss format is: 02-01-2014 22:38:35
    String in dd-MMM-yyyy format is: 02-Jan-2014
    String in MM dd, yyyy format is: 01 02, 2014
    String in E, MMM dd yyyy format is: Thu, Jan 02 2014
    String in E, E, MMM dd yyyy HH:mm:ss format is: Thu, Jan 02 2014 22:38:35

  1. import java.text.DateFormat;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    public class StringToDateDemo{
       public static void main(String args[])
       {
           String testDateString = "02/04/2014";
           String testDateString2 = "02-04-2014 23:37:50";
           String testDateString3 = "02-Apr-2014";
           String testDateString4 = "04 02, 2014";
           String testDateString5 = "Thu, Apr 02 2014";
           String testDateString6 = "Thu, Apr 02 2014 23:37:50";
           DateFormat df = new SimpleDateFormat("dd/MM/yyyy");
           DateFormat df2 = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss");
           DateFormat df3 = new SimpleDateFormat("dd-MMM-yyyy");
           DateFormat df4 = new SimpleDateFormat("MM dd, yyyy");
           DateFormat df5 = new SimpleDateFormat("E, MMM dd yyyy");
           DateFormat df6 = new SimpleDateFormat("E, MMM dd yyyy HH:mm:ss");
           try
           {
               //format() method Formats a Date into a date/time string. 
               Date d1 = df.parse(testDateString);
               System.out.println("Date: " + d1);
               System.out.println("Date in dd/MM/yyyy format is: "+df.format(d1));
               Date d2 = df2.parse(testDateString2);
               System.out.println("Date: " + d2);
               System.out.println("Date in dd-MM-yyyy HH:mm:ss format is: "+df2.format(d2));
               Date d3 = df3.parse(testDateString3);
               System.out.println("Date: " + d3);
               System.out.println("Date in dd-MMM-yyyy format is: "+df3.format(d3));
               Date d4 = df4.parse(testDateString4);
               System.out.println("Date: " + d4);
               System.out.println("Date in MM dd, yyyy format is: "+df4.format(d4));
               Date d5 = df5.parse(testDateString5);
               System.out.println("Date: " + d5);
               System.out.println("Date in E, MMM dd yyyy format is: "+df5.format(d5));
               Date d6 = df6.parse(testDateString6);
               System.out.println("Date: " + d6);
               System.out.println("Date in E, E, MMM dd yyyy HH:mm:ss format is: "+df6.format(d6));
           }
           catch (Exception ex ){
              System.out.println(ex);
           }
       }
    }
    //output
    Date: Wed Apr 02 00:00:00 IST 2014
    Date in dd/MM/yyyy format is: 02/04/2014
    Date: Wed Apr 02 23:37:50 IST 2014
    Date in dd-MM-yyyy HH:mm:ss format is: 02-04-2014 23:37:50
    Date: Wed Apr 02 00:00:00 IST 2014
    Date in dd-MMM-yyyy format is: 02-Apr-2014
    Date: Wed Apr 02 00:00:00 IST 2014
    Date in MM dd, yyyy format is: 04 02, 2014
    Date: Wed Apr 02 00:00:00 IST 2014
    Date in E, MMM dd yyyy format is: Wed, Apr 02 2014
    Date: Wed Apr 02 23:37:50 IST 2014
    Date in E, E, MMM dd yyyy HH:mm:ss format is: Wed, Apr 02 2014 23:37:50

格式例子:

  1. dd-MM-yy 31-01-12
    dd-MM-yyyy 31-01-2012
    MM-dd-yyyy 01-31-2012
    yyyy-MM-dd 2012-01-31
    yyyy-MM-dd HH:mm:ss 2012-01-31 23:59:59
    yyyy-MM-dd HH:mm:ss.SSS 2012-01-31 23:59:59.999
    yyyy-MM-dd HH:mm:ss.SSSZ 2012-01-31 23:59:59.999+0100
    EEEEE MMMMM yyyy HH:mm:ss.SSSZ Saturday November 2012 10:45:42.720+0100
    
    yyyy-MM-dd'T'HH:mm:ssZZZZ 2017-02-19T22:36:06-0800
    
    dd-MM-yyyy EEEE hh:mm:ss a 22-11-2017 Wednesday 12:16:38 PM

原文发表于:https://www.52tect.com/java/2022/06/19/872.html

### 回答1: 在Java中,可以使用`SimpleDateFormat`类和`Date`类来进行日期和字符串的相互转换。 1. 将字符串转换为日期 ```java String strDate = "2021-07-20"; SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); Date date = dateFormat.parse(strDate); ``` 2. 将日期转换为字符串 ```java Date date = new Date(); SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); String strDate = dateFormat.format(date); ``` 其中,`SimpleDateFormat`类中的字符串格式化符号含义如下: | 符号 | 含义 | | ---- | ---- | | yyyy | 年份 | | MM | 月份 | | dd | 日期 | | HH | 小时(24小时制) | | mm | 分钟 | | ss | 秒钟 | 如果要使用12小时制,需要将HH改为hh,并且添加a表示上午/下午。 ```java SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss a"); ``` 需要注意的是,`SimpleDateFormat`类不是线程安全的,如果在多线程环境下使用,需要进行同步处理。 ### 回答2: Java中,可以使用SimpleDateFormat类来进行日期和字符串的相互转化。 首先,将日期转化为字符串。可以使用SimpleDateFormat类的format方法。例如,要将当前日期转化为字符串,可以按照以下步骤进行: 1. 创建SimpleDateFormat对象,指定日期格式。 2. 调用format方法,传入待转化日期对象,返回字符串表示。 示例代码如下: ```java import java.text.SimpleDateFormat; import java.util.Date; public class DateToStringExample { public static void main(String[] args) { // 获取当前日期 Date currentDate = new Date(); // 创建SimpleDateFormat对象,指定日期格式 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); // 转化为字符串 String dateString = sdf.format(currentDate); // 输出结果 System.out.println("日期转化为字符串:" + dateString); } } ``` 接下来,将字符串转化日期。同样可以使用SimpleDateFormat类的parse方法。例如,将字符串"2022-10-15"转化日期对象,可以按照以下步骤进行: 1. 创建SimpleDateFormat对象,指定日期格式。 2. 调用parse方法,传入待转化的字符串,返回日期对象。 示例代码如下: ```java import java.text.SimpleDateFormat; import java.util.Date; public class StringToDateExample { public static void main(String[] args) throws Exception { // 定义日期字符串 String dateString = "2022-10-15"; // 创建SimpleDateFormat对象,指定日期格式 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); // 转化日期对象 Date date = sdf.parse(dateString); // 输出结果 System.out.println("字符串转化日期:" + date); } } ``` 上述示例代码仅为简单示例,实际应用中可以根据需求进行更复杂的日期和字符串的转化操作。 ### 回答3: 在Java中,可以通过使用SimpleDateFormat类来进行日期和字符串之间的相互转换。 首先,要将日期转换为字符串,可以按照以下步骤进行操作: 1. 创建一个SimpleDateFormat对象,并指定日期格式模式,例如:"yyyy-MM-dd HH:mm:ss"。 2. 使用SimpleDateFormat的format方法,将日期对象作为参数传递进去,返回相应格式的字符串。 示例代码如下: ```java import java.text.SimpleDateFormat; import java.util.Date; public class DateToStringExample { public static void main(String[] args) { Date date = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String dateString = sdf.format(date); System.out.println(dateString); } } ``` 此代码将当前日期转换为"yyyy-MM-dd HH:mm:ss"格式的字符串,并打印出来。 接下来,要将字符串转换为日期,可以按照以下步骤进行操作: 1. 创建一个SimpleDateFormat对象,并指定日期格式模式,例如:"yyyy-MM-dd"。 2. 使用SimpleDateFormat的parse方法,将字符串作为参数传递进去,返回相应格式日期对象。 示例代码如下: ```java import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class StringToDateExample { public static void main(String[] args) { String dateString = "2021-01-01"; SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); try { Date date = sdf.parse(dateString); System.out.println(date); } catch (ParseException e) { e.printStackTrace(); } } } ``` 此代码将字符串"2021-01-01"转换为日期对象,并打印出来。 需要注意的是,日期格式模式的选取应根据实际需求进行选择,并且要确保日期字符串的格式与模式相匹配,否则可能会抛出ParseException异常。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值