网站首页 > 技术文章 正文
基本用法: SimpleDateFormat sdf = new SimpleDateFormat( " yyyy-MM-dd HH:mm:ss " );
这一行最重要,它确立了转换的格式,yyyy是完整的公元年,MM是月份,dd是日期,至于HH:mm:ss 是时分秒。
为什么有的格式大写,有的格式小写?那是怕避免混淆,例如MM是月份,mm是分;HH是24小时制,而hh是12小时制。
1.字符串转日期
2019-10-10 10:20:00 要把它转成日期,可以用 Date date = sdf.parse("2019-10-10 10:20:00");
2.日期转字符串
假如把今天的日期转成字符串可用 String str = sdf.format(new Date());
这个字符串内容的格式类似 2019-10-10 10:20:00。
透过这个API我们便可以随心所欲的将日期转成我们想要的字符串格式,例如希望将日期输出成2019
年10月10日,我们可以这么写:
SimpleDateFormat sdf = new SimpleDateFormat( " yyyy年MM月dd日 " );
String str = sdf.format(new Date());
str便会依照我们设定的格式输出了。
3. 具体演示代码
package com.rickie;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Main {
public static void main(String[] args) throws ParseException {
// 按照yyyy-MM-dd HH:mm:ss 格式输出
System.out.println(getCurrentTime());
// 按照指定格式输出
System.out.println(getCurrentTime("yyyy年MM月dd日 HH:mm:ss"));
// 进行日期格式转换
Date date = stringToDate("20190909123456",
"yyyyMMddHHmmss", "yyyy-MM-dd HH:mm:ss");
// 按照Java系统中默认格式输出
System.out.println(date);
// 按照指定格式输出
System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(date));
}
/**
* 返回当前日期时间字符串<br>
* 默认格式:yyyy-MM-dd HH:mm:ss
*
* @return String 返回当前字符串型日期时间
*/
public static String getCurrentTime() {
String formattedDate = null;
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = new Date();
formattedDate = sdf.format(date);
return formattedDate;
}
/**
* 返回自定义格式的当前日期时间字符串
*
* @param format
* 格式规则
* @return String 返回当前字符串型日期时间
*/
public static String getCurrentTime(String format) {
String formattedDate = null;
SimpleDateFormat f = new SimpleDateFormat(format);
Date date = new Date();
formattedDate = f.format(date);
return formattedDate;
}
/**
* 将字符串型日期转换为日期型
*
* @param strDate
* 字符串型日期
* @param srcDateFormat
* 源日期格式
* @param dstDateFormat
* 目标日期格式
* @return Date 返回的util.Date型日期
*/
public static Date stringToDate(String strDate, String srcDateFormat, String dstDateFormat) throws ParseException {
Date rtDate = null;
Date tmpDate = (new SimpleDateFormat(srcDateFormat)).parse(strDate);
String tmpString = null;
if (tmpDate != null) {
tmpString = (new SimpleDateFormat(dstDateFormat)).format(tmpDate);
// 按照目标日期格式输出
System.out.println(tmpString);
}
if (tmpString != null) {
rtDate = (new SimpleDateFormat(dstDateFormat)).parse(tmpString);
// 按照Java系统中默认格式输出
System.out.println(rtDate);
}
return rtDate;
}
}
输出结果:
调用System.out.println(date)是怎么打印成字符串的?
java.util.Date中重写了toString方法,输出格式为:"EEE MMM dd HH:mm:ss zzz yyyy",因此上述打印日期对象实例时,输出结果为:Mon Sep 09 12:34:56 CST 2019
4. 编写DateConverter工具类
实现日期到字符串、字符串到日期类型的转换。
package com.rickie;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateConverter {
/**
* 日期转换成字符串
* @param date
* @return str
*/
public static String DateToStr(Date date) {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String str = format.format(date);
return str;
}
/**
* 字符串转换成日期
* @param str
* @return date
*/
public static Date StrToDate(String str) {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = null;
try {
date = format.parse(str);
} catch (ParseException e) {
e.printStackTrace();
}
return date;
}
}
调用代码:
System.out.println(DateConverter.DateToStr(new Date()));
Date myDate = DateConverter.StrToDate("2010-10-10 10:10:10");
System.out.println(myDate);
猜你喜欢
- 2024-09-20 非常详细!如何理解表格存储的多版本、生命周期和有效版本偏差
- 2024-09-20 6种快速统计代码执行时间的方法,真香
- 2024-09-20 Java 开发者最困惑的四件事(java开发遇到问题如何解决)
- 2024-09-20 【Java多线程】定时器Timer(java定时器线程池)
- 2024-09-20 还在用new Date计算任务执行时间?强烈建议使用这个API
- 2024-09-20 “抄”代码,再也不用上谷歌复制粘贴了
- 2024-09-20 java获取当前时间的四种方法代码实例
- 2024-09-20 撸完这篇线程池,我快咳血了(线程池有什么用)
- 2024-09-20 JAVA轮询遍历两个数组进行比较(遍历数组 java)
- 2024-09-20 蒙圈了?System.currentTimeMillis()存在性能问题
- 1514℃桌面软件开发新体验!用 Blazor Hybrid 打造简洁高效的视频处理工具
- 563℃Dify工具使用全场景:dify-sandbox沙盒的原理(源码篇·第2期)
- 508℃MySQL service启动脚本浅析(r12笔记第59天)
- 486℃服务器异常重启,导致mysql启动失败,问题解决过程记录
- 485℃启用MySQL查询缓存(mysql8.0查询缓存)
- 465℃「赵强老师」MySQL的闪回(赵强iso是哪个大学毕业的)
- 445℃mysql服务怎么启动和关闭?(mysql服务怎么启动和关闭)
- 442℃MySQL server PID file could not be found!失败
- 最近发表
- 标签列表
-
- c++中::是什么意思 (83)
- 标签用于 (65)
- 主键只能有一个吗 (66)
- c#console.writeline不显示 (75)
- pythoncase语句 (81)
- es6includes (73)
- windowsscripthost (67)
- apt-getinstall-y (86)
- node_modules怎么生成 (76)
- c++int转char (75)
- static函数和普通函数 (76)
- el-date-picker开始日期早于结束日期 (70)
- js判断是否是json字符串 (67)
- checkout-b (67)
- c语言min函数头文件 (68)
- asynccallback (71)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- & (66)
- java (73)
- js数组插入 (83)
- mac安装java (72)
- eacces (67)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)