SimpleDateFormat日期格式化总结

1.new一个java.util.Date对象,调用它的setYear、setMonth等等方法,设置你要的年月日。不过这种做法不推荐,因为setYear等方法已经过时了。
2.new一个java.util.SimpleDateFormat类的实例,构造方法可以指定日期格式,例如yyyy-MM-dd,其中yyyy表示四位年份,MM表示两位月份,dd表示两位日期。然后通过调用这个SimpleDateFormat实例的parse方法可以解析获得指定日期的Date对象。


格式:例如 "20180516" 表示为:"yyyyMMdd"

yyyy:年
MM:月
dd:日
hh:1~12小时制(1-12)
HH:24小时制(0-23)
mm:分
ss:秒
S:毫秒
E:星期几
D:一年中的第几天
F:一月中的第几个星期(会把这个月总共过的天数除以7)
w:一年中的第几个星期
W:一月中的第几星期(会根据实际情况来算)
a:上下午标识
k:和HH差不多,表示一天24小时制(1-24)。
K:和hh差不多,表示一天12小

 

使用示例:
public class FormatDateTime {

    public static void main(String[] args) {
        SimpleDateFormat myFmt=new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
        SimpleDateFormat myFmt1=new SimpleDateFormat("yy/MM/dd HH:mm");
        SimpleDateFormat myFmt2=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//等价于now.toLocaleString()
        SimpleDateFormat myFmt3=new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒 E ");
        SimpleDateFormat myFmt4=new SimpleDateFormat(
                "一年中的第 D 天 一年中第w个星期 一月中第W个星期 在一天中k时 z时区");
        Date now=new Date();
        System.out.println(myFmt.format(now));
        System.out.println(myFmt1.format(now));
        System.out.println(myFmt2.format(now));
        System.out.println(myFmt3.format(now));
        System.out.println(myFmt4.format(now));
        System.out.println(now.toGMTString());
        System.out.println(now.toLocaleString());
        System.out.println(now.toString());
    }   
   
}

结果:
2018年12月27日 11时24分57秒
18/12/27 11:24
2018-12-27 11:24:57
2018年12月27日 11时24分57秒 星期四
一年中的第 361 天 一年中第52个星期 一月中第5个星期 在一天中11时 CST时区
27 Dec 2018 03:24:57 GMT
2018-12-27 11:24:57
Thu Dec 27 11:24:57 CST 2018


private static long parseTime(String strTime) {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
long time = 0L;
try {
time = format.parse(strTime).getTime();
} catch (ParseException e) {
e.printStackTrace();
}
return time;
}

public static void main(String[] args) {
String aString="2018-12-27";
long aTime=parseTime(aString);
System.out.println(aTime);
SimpleDateFormat aDate=new SimpleDateFormat("yyyy-MM-dd");
System.out.println(aDate.format(aTime));

}

结果:
1545840000000
2018-12-27
很方便的实现了string转时间

转载于:https://www.cnblogs.com/lyiwo/p/10184029.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Instant和SimpleDateFormatJava中处理时间格式化和转换的两个类。 1. Instant类是Java 8引入的一个时间类,用于表示时刻。它是不可变的,可以精确到纳秒级别,并且可以与时区无关。通过Instant类,我们可以方便地进行日期和时间的操作和计算。 2. SimpleDateFormat是一个旧的Java类,用于将Date对象格式化为指定的日期和时间字符串,或将日期和时间字符串解析为Date对象。它可以使用不同的模式来指定日期和时间的格式。 要将Instant对象转换为指定格式的时间字符串,可以使用DateTimeFormatter类(Java 8及以上版本)或SimpleDateFormat类(Java 7及以下版本)。 例如,要将Instant对象转换为"yyyy-MM-dd HH:mm:ss"格式的时间字符串,可以使用以下代码: Java 8及以上版本: ``` Instant instant = Instant.now(); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); String formattedDateTime = formatter.format(instant); ``` Java 7及以下版本: ``` Instant instant = Instant.now(); SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String formattedDateTime = formatter.format(Date.from(instant)); ``` 而要将指定格式的时间字符串解析为Instant对象,可以使用以下代码: Java 8及以上版本: ``` String dateTimeString = "2022-05-10 15:30:00"; DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); Instant instant = Instant.parse(dateTimeString, formatter); ``` Java 7及以下版本: ``` String dateTimeString = "2022-05-10 15:30:00"; SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date = formatter.parse(dateTimeString); Instant instant = date.toInstant(); ``` 总结:Instant类是用于表示时刻的,SimpleDateFormat类是用于格式化和解析日期和时间字符串的。要将Instant对象转换为指定格式的时间字符串,可以使用DateTimeFormatter类或SimpleDateFormat类;要将指定格式的时间字符串解析为Instant对象,也可以使用DateTimeFormatter类或SimpleDateFormat类。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值