DateUtils

  • 基本知识
  • 封装
 psvm是 public static void main(String[] args)idea快捷键sout是System.out.println快捷键

基本知识

  1. Date date = new Date(); System.out.println(date);
    输出:

    CST 中央标准时间 北京时间
    GMT 格林威治时间
    UTC 世界标准时间
    GMT =UTC
    UTC+时差=本地时间
  2. 对日期进行格式化
    SimpleDateFormat formater =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //对日期进行格式化 中国人的习惯 单引号不行 yyyy年MM月dd日 HH时mm分ss秒也可以
法一:Date转String格式转换输出
System.out.println(formater.format(date));

补充法二:String转Date
错误用法:
直接用 System.out.println(formater.parse(date));
报错,
原因一:因为parse需要String类型的参数 且返回Date类型的对象
原因二:即使用date.toString()也会报错,因为date.toString()的输出结果形式为:"Wed Oct 06 13:25:47 CST 2021"与formater中格式并不匹配  不匹配会解析失败!!为了使其匹配,可以修改formater的格式再用如下代码,此处不写。
System.out.println(formater.parse(date.toString()));
补充:parse()的用法
String dateStr="2021-10-6";
SimpleDateFormat formater  =new SimpleDateFormat("yyyy-MM-dd");
System.out.println(formater.parse(dateStr));//String和DateFormat样式需一样,不然无法解析!!!例如2021-10-6对应yyyy-MM-dd  2021/10/6对应yyyy/MM/dd

参考: Java日期时间格式转换.

封装

  • DateUtils工具类

parse()

package com.tyut.common;import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;/****/
public class DateUtils {//封装常量public static final String FORMAT_ONE = "yyyy-MM-dd HH:mm:ss";public static final String FORMAT_TWO = "yyyy-MM-dd";//封装方法public static Date stringToDate(String dateStr,String format){Date date = null;SimpleDateFormat formater  =new SimpleDateFormat(format);try{formater.setLenient(false);//不会自动计算日期,比如55个月就是不合法的日期会抛出异常date=formater.parse(dateStr); }catch(Exception e){date=null;}return date;}
}

补充:setLenient()函数 是否严格解析日期
我们需要判断用户的日期格式是否正确,从文件流读入的日期如果不合格就需要抛异常,这时候就需要禁止SimpleDateFormat的自动计算功能(false)。
参考:setLenient(true/false).

format()

package com.tyut.common;import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;/****/
public class DateUtils {//封装常量public static final String FORMAT_ONE = "yyyy-MM-dd HH:mm:ss";public static final String FORMAT_TWO = "yyyy-MM-dd";//封装方法public static String stringToDate(Date date,String format){String strDate = null;SimpleDateFormat formater  =new SimpleDateFormat(format);try {strDate=formater.format(date);return strDate;}catch (Exception e){e.printStackTrace();}return strDate;}
}
  • DateTime类
package com.tyut.datetime;import com.tyut.common.DateUtils;import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.sql.Time; //灰色表示未使用public class DateTime {public static void main(String[] args) throws ParseException { //psvm快捷键Date date=new Date();String dateStr="2021-10-6";date=DateUtils.stringToDate(dateStr,"yyyy-MM-dd");//注意 dateStr与后面的格式类型要一样,否则会解析失败date=DateUtils.stringToDate(dateStr,DateUtils.FORMAT_TWO);//调用封装好的formatSystem.out.println(date);}
}



此时输出的还是国外的格式,可以用format将其在转换

用format()

package com.tyut.datetime;import com.tyut.common.DateUtils;import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.sql.Time; //灰色表示未使用public class DateTime {public static void main(String[] args) throws ParseException { //psvm快捷键Date date=new Date();String strDate=null;strDate=DateUtils.stringToDate(date,DateUtils.FORMAT_ONE);System.out.println(strDate);}
}


parse()不好用好麻烦
补充:
使用parse()String转Date的对象打印出来还是国外的格式,可以再用format()进行处理
format()调用后的结果是字符串,所以可以修改DateUtils返回值类型

DateUtils类

package com.tyut.common;import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;/****/
public class DateUtils {//封装常量public static final String FORMAT_ONE = "yyyy-MM-dd HH:mm:ss";public static final String FORMAT_TWO = "yyyy-MM-dd";//封装方法public static String stringToDate(String dateStr,String format){String date = null;SimpleDateFormat formater  =new SimpleDateFormat(format);try{formater.setLenient(false);//不会自动计算日期,比如55个月就是不合法的日期会抛出异常Date d=formater.parse(dateStr);date=formater.format(d);}catch(Exception e){date=null;}return date;}
}

DateTime类

package com.tyut.datetime;import com.tyut.common.DateUtils;import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.sql.Time; //灰色表示未使用public class DateTime {public static void main(String[] args) throws ParseException { //psvm快捷键//Date date=new Date();String dateStr="2021-10-6";String date=DateUtils.stringToDate(dateStr,"yyyy-MM-dd");//注意 dateStr与后面的格式类型要一样,否则会解析失败//  date=DateUtils.stringToDate(dateStr,DateUtils.FORMAT_TWO);//调用封装好的formatSystem.out.println(date);}
}

结果

DateUtils封装相关推荐

  1. MP实战系列(十一)之封装方法详解(续一)

    之前写的封装方法详解,比较简要. 今天我主要讲增加和删除及其修改.查的话得单独再详讲. 增删改查,无论是Java或者C#等等,凡是对数据库操作的都离不开这四个. 一.增加方法讲解 MyBatis Pl ...

  2. 封装直传阿里云存储文件上传控件

    本文目标 封装一个直传阿里云OSS云存储图片上传控件 控件效果图 上传之前 上传成功 预览图片 文件上传前后台及阿里云存储数据流转过程 1.前端先访问后台接口获取上传阿里云存储权限相关信息和文件编号信 ...

  3. Java EXCEL 表格导入导出(带下拉选-带VLOOKUP函数封装)

    Java EXCEL 表格导入导出(带下拉选-带VLOOKUP函数封装) 对于excel Java POI 使用 目前简单导出导入功能网上很多,但是对于有下拉选,样式等缺点却是最大硬伤,故此封装一个通 ...

  4. ( 持续更新,目前含 200+ 工具类 ) DevUtils 是一个 Android 工具库, 主要根据不同功能模块,封装快捷使用的工具类及 API 方法调用。

    DevUtils GitHub About ( 持续更新,目前含 200+ 工具类 ) Roadmap DevUtils 是一个 Android 工具库,主要根据不同功能模块,封装快捷使用的工具类及 ...

  5. 程序中的日期使用问题-格式转化:SimpleDateFormat、org.apache.commons.lang3.time.DateUtils

    前言 日期使用问题主要是格式转换的问题 场景:通过excel导入数据,其中一个字段为出生日期,需要对字段值进行合法性校验 博客地址:芒果橙的个人博客 [http://mangocheng.com] 文 ...

  6. IDEA中将代码块封装为方法,IDEA代码重构快捷键

    IDEA中将代码块封装为方法 选中要转换的代码块,快捷键: Windows快捷键:Alt + Shift + M Mac快捷键:Alt + Command + M 如图:

  7. 2022-2028年中国封装用胶膜行业运营现状及投资发展潜力报告

    [报告类型]产业研究 [出版时间]即时更新(交付时间约3个工作日) [发布机构]智研瞻产业研究院 [报告格式]PDF版 本报告介绍了封装用胶膜行业相关概述.中国封装用胶膜行业运行环境.分析了中国封装用 ...

  8. 第十六节,使用函数封装库tf.contrib.layers

    目录 一 tf.contrib.layers中的具体函数介绍 1.tf.contrib.layers.conv2d()函数的定义如下: 2.tf.contrib.layers.max_pool2d() ...

  9. 薄膜封装,等离子体技术,原子层沉积,化学气相沉积

    薄膜封装,等离子体技术,原子层沉积,化学气相沉积 薄膜封装 薄膜封装概念 薄膜真空沉积的一个很重要的技术应用就是薄膜封装.人们对薄膜封装最简单的认识就是日常生活中最常见的保鲜膜,水氧渗透率大约是1-1 ...

  10. 为什么要使用Retrofit封装OkHttp,而不单独使用OkHttp?

    OkHttp的优点: 开源的轻量级框架.高效.快速的请求客户端,可以单独使用它来实现网络请求. 支持SPDY: 支持连接池,可极大减少延时: 支持Gzip压缩响应体,降低传输内容的大小: 支持Http ...

最新文章

  1. as3中TextFormat类的使用
  2. Java 程序员必须掌握的 10 款开源工具!
  3. Storm集群安装部署步骤【详细版】
  4. selenium在页面中多个fream的定位
  5. qt-designer使用教程3--编写自己的槽
  6. 进腾讯了!(实习面经分享)
  7. @EnableTransactionManagement原理
  8. 300+队伍/8大直播间,这场NXP智能车竞赛谁才是真的神车?
  9. mysql 用户管理系统_mysql 用户管理
  10. 南京IT企业环境之最深心得体会
  11. msdia80.dll 是干什么的?这个文件可以删除吗?
  12. C:\Users\用户名\AppData\Roaming里面的文件可以删除吗?
  13. 解题笔记——NIT 遥远的村庄
  14. 中国LVDT RVDT传感器市场现状研究分析与发展前景预测报告(2022)
  15. sat考试用计算机,干货:SAT考试计算器选择指南
  16. B站哔哩哔哩视频一键下载,这个视频下载工具太给力了
  17. [OpenCV] 练习题实现代码 使用 cv.addWeighted 函数在文件夹中创建图像的幻灯片放映,并在图像之间进行平滑过渡
  18. 乔治亚州立大学如何利用算法来帮助学生通向大学之路?
  19. GEE行政区加载,高程坡度计算和裁剪
  20. 移动电影院创造中国电影市场的新增量

热门文章

  1. Ubuntu20 运行不了网络助手NetAssist
  2. 基于vue+Java实现的餐厅订餐点餐管理系统
  3. IDEA设置文件模板
  4. 《多媒体技术与应用》知识点整理
  5. 多变量遗传算法python代码_遗传算法之Python实现代码
  6. Ubuntu 20.04 无连接图标无网络问题
  7. IIS发布可下载文件的站点
  8. 人力资源管理(HR)专业书籍推荐
  9. html中实心黑点,Word 实心黑点怎么打?
  10. 安装SAS University Edition