Java系统中时间封装处理

java篇42-java的时间日期类(Date类、DateFormat类、SimpleDateFormat、Calendar类) 由于DateFormat为抽象类,不能直接使用,所以需要常用的子类java.text.SimpleDateFormat,这个类需要一个模式(格式)来指定格式化或解析的标准。答案是使用Calendar类。java.text.DateFormat是日期/时间格式化子类的抽象类,可以通过这个类来完成日期和文本之间的转换,也就是可以在Date对象与String对象之间进行来回转换。(4)public Date getTime():返回一个表示此Calendar时间值(从历元到现在的毫秒偏移量)的Date对象。 阅读详情

封装时间操作

package com.cloud.util;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class DateUtil {
	/* 私有构造方法,工具类不需要实例化 */
	private DateUtil(){}
	/* 判断是否是时间类型 */
	public static boolean idDate(String dateStr){
		try {
			DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
			df.parse(dateStr);
			return true;
		} catch (ParseException e) {
			return false;
		}
	}
	/* 格式化日期 */
	public static Date parseDate(String dateStr, String format) {
		Date date = null;
		try {
			java.text.DateFormat df = new java.text.SimpleDateFormat(format);
			String dt = (dateStr).replaceAll("-", "/");
			if ((!dt.equals("")) && (dt.length() < format.length())) {
				dt += format.substring(dt.length()).replaceAll("[YyMmDdHhSs]","0");
			}
			date = (Date) df.parse(dt);
		} catch (Exception e) {
		}
		return date;
	}
	/* 格式化日期:yyyy/MM/dd 形式 */
	public static Date parseDate(String dateStr){
		return parseDate(dateStr.replace("-", "/"),"yyyy/MM/dd");
	}
	/* 格式化日期:java.sql.Date 类型转换为 java.util.Date类型 */
	public static Date parseDate(java.sql.Date date){
		return date;
	}
	/* 格式化日期:  java.util.Date类型转换java.sql.Date类型 */
	public static java.sql.Date parseSqlDate(Date date){
		if(date!=null)
			return new java.sql.Date(date.getTime());
		else
			return null;
	}
	/* 根据String日期,并按照格式,返回SQL日期 */
	public static java.sql.Date parseSqlDate(String dateStr,String format){
		Date date = parseDate(dateStr, format);
		return parseSqlDate(date);
	}
	/* 根据String日期,返回SQL日期  */
	public static java.sql.Date parseSqlDate(String dateStr){
		return parseSqlDate(dateStr, "yyyy/MM/dd");
	}
	/* 根据String日期,并根据一定的格式转换成java.sql.Timestamp的日期  */
	public static java.sql.Timestamp parseTimestamp(String dateStr,String format){
		Date date = parseDate(dateStr, format);
		if(date!=null){
			long time = date.getTime();
			return new java.sql.Timestamp(time);
		} else
			return null;
	}
	/* 根据dateStr 字符串日期  返回yyyy/MM/dd  HH:mm:ss 格式的java.sql.Timestamp日期  */
	public static java.sql.Timestamp parseTimestamp(String dateStr){
		return parseTimestamp(dateStr.replace("-", "/"), "yyyy/MM/dd HH:mm:ss");
	}
	/* 格式化date类型为String类型日期格式  */
	public static String format(Date date,String format){
		String result = "";
		try{
			if(date!=null){
				DateFormat df = new SimpleDateFormat(format);
				result = df.format(date);
			}
		} catch(Exception e){}
		return result;
	}
	/* 格式化date类型  */
	public static String format(Date date){
		return format(date,"yyyy/MM/dd");
	}
	/* 获取日期的年份 */
	public static int getYear(Date date){
		Calendar c = Calendar.getInstance();
		c.setTime(date);
		return c.get(Calendar.YEAR);
	}
	/* 获取日期的月份 */
	public static int getMonth(Date date){
		Calendar c = Calendar.getInstance();
		c.setTime(date);
		return c.get(Calendar.MONTH)+1;
	}
	/* 获取日期的天份 */
	public static int getDay(Date date){
		Calendar c = Calendar.getInstance();
		c.setTime(date);
		return c.get(Calendar.DAY_OF_MONTH);
	}
	/* 获取小时 */
	public static int getHour(Date date){
		Calendar c = Calendar.getInstance();
		c.setTime(date);
		return c.get(Calendar.HOUR_OF_DAY);
	}
	/* 获取分钟 */
	public static int getMinute(Date date){
		Calendar c = Calendar.getInstance();
		c.setTime(date);
		return c.get(Calendar.MINUTE);
	}
	/* 获取秒钟 */
	public static int getSecond(Date date){
		Calendar c = Calendar.getInstance();
		c.setTime(date);
		return c.get(Calendar.SECOND);
	}
	/* 获取毫秒 */
	public static long getMillis(Date date){
		Calendar c = Calendar.getInstance();
		c.setTime(date);
		return c.getTimeInMillis();
	}
	/* 返回字符类型时间 */
	public static String getTime(Date date){
		return format(date, "HH:mm:ss");
	}
	/* 返回字符类型的日期和时间 */
	public static String getDateTime(Date date){
		return format(date, "yyyy/MM/dd HH:mm:ss");
	}
	/* 返回日期相加后的日期 */
	public static Date addDate(Date date,int day){
		Calendar c = Calendar.getInstance();
		c.setTimeInMillis(getMillis(date)+((long) day) * 24 * 3600 * 1000);
		return c.getTime();
	}
	/* 两个日期相减 */
	public static int diffDate(Date date,Date date1){
		return (int)((getMinute(date)-getMillis(date1))/(24 * 3600 * 1000));
	}
}

简单测试

package com.cloud.test;

import java.util.Date;
import com.cloud.util.DateUtil;
public class TestDateUtil {
	public static void main(String[] args) {

		boolean flag = DateUtil.idDate("2014-05-17");
		System.out.println(flag);
		Date date = DateUtil.parseDate("2016/11/12");
		System.out.println(date.toString());
		String time = DateUtil.getTime(new Date());
		System.out.println(time);
	}
}

Java电话计费卡系统设计与实现源码解析 继续看我们的核心字段:全部私有化后,外界只能通过公开的方法间接操作。这就给了我们插入校验逻辑的机会!例如,卡号一旦生成就不该变:// 没有 setCardNumber() —— 因为不能改!而对于余额和费率,则可以通过带校验的setter进行受控更新:throw new IllegalArgumentException("余额不能为负数!");throw new IllegalArgumentException("费率不能为负!"); 阅读详情

相关推荐

java所有可能的日期操作封装

近百种java 日期类操作 让你轻松操作java时间

Java封装好的时间工具类

在大型项目中肯定要遇到各种复杂的时间对象,最好的方法就是封装一个时间工具类 import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; import java.util.List; public clas

qq_1259799716的博客 347

Java中封装的全局日期处理工具类

获取SimpleDateFormat 获取日期中的某数值。如获取月份 增加日期中某类型的某数值。如增加日期 获取精确的日期 判断字符串是否为日期字符串 获取日期字符串的日期风格。失敗返回null。 将日期字符串转化为日期。失败返回null。 将日期字符串转化为另一日期字符串。失败返回null。 增加日期的年份。失败返回null。 增加日期的月份。失败返回null。 增加日期的天数。失败返回null。 增加日期的小时。失败返回null。 增加日期的分钟。失败返回null。 增加日期的秒钟。失败返回null。 获取日期的年份。失败返回0。 获取日期的月份。失败返回0。 获取日期的天数。失败返回0。 获取日期的小时。失败返回0。 获取日期的分钟。失败返回0。 获取日期的秒钟。失败返回0。 获取日期。默认yyyy-MM-dd格式。失败返回null。 获取日期的时间。默认HH:mm:ss格式。失败返回null。 获取日期的星期。失败返回null。 获取两个日期相差的天数 。 获取两个日期相差的毫秒数 。 获得两个日期之间的连续日期.。 将时间转换为时间戳。 获取连续月份。 两个时间相差距离中文描述 。 比较两个时间的大小。

java常用日期封装

1,再当前日期上进行累加 /** * 当前日期加减多少天 */ public static String getNowDateString(int day){ return LocalDate.now().plusDays(day).format(DateTimeFormatter.ofPattern("yyyy-MM-dd")); } /** * 当前日期加减多少月 */ public static Dat

jjjackjack的博客 461

LibreNMS实战:5分钟搞定Docker部署与中文配置(附常见问题排查)

本文详细介绍了如何使用Docker在5分钟内快速部署LibreNMS,并完成中文界面优化。从环境准备到容器启动,再到中文语言包安装和系统配置调整,提供了完整的实战指南。同时,文章还包含常见问题排查和性能调优建议,帮助用户高效搭建网络监控系统。

e1f2g的博客 1281

简单易懂的AXI_Lite 总线详解

简单易懂的AXI_Lite 总线详解 1、前言 AXI_LITE协议主要应用于Xilinx的ZYNQ芯片构架下的ARM和FPGA之间的数据读写,更偏向于单个寄存器的读写。 2、AXI总线与ZYNQ的关系 AXI(Advanced eXtensible Interface)本是由ARM公司提出的一种总线协议,Xilinx从6系列的FPGA开始对AXI总线提供支持,此时AXI已经发展到了AXI4这个版本,所以当你用到Xilinx的软件的时候看到的都是“AIX4”的IP,如Vivado打包一个AXI IP的时候,

m0_46642108的博客 8493

Java封装常用时间工具类

public class DateUtils { /** 系统默认 日期类型 yyyy-MM-dd */ public static final String DATE_PATTERN_DEFAULT = "yyyy-MM-dd"; /** 时间 日期类型 HH:mm:ss */ public static final String DATE_PATTERN_...

hq.zheng的博客 2003

时间序列数据预测——15种时序大模型

本文综述了时间序列大模型(TSFM)的最新进展,系统介绍了11种主流模型(如TimeGPT、Lag-Llama、Moirai等)的架构特点、训练数据和创新点,并对比分析了它们在单变量/多变量预测、概率预测等功能上的差异。研究表明,基于"大规模预训练-微调/零样本"范式的TSFM在标准数据集(如M4、ETT)上展现出优于传统方法的性能,Time-MoE等模型更达到SOTA水平。但TSFM仍面临计算成本高、可解释性差等挑战,未来发展方向包括轻量级架构、多模态融合和可解释性增强。

m0_56592100的博客 4069

Java JDK1.8+ 时间工具类

DateUtils是基于Java 8时间API封装的工具类,提供日期时间操作、转换、格式化、解析和比较等功能。支持获取当前时间、传统Date转换、时间加减运算、月份首尾日获取等操作,并兼容新旧日期类型。所有方法均为静态调用,默认使用系统时区,解析时需格式匹配。工具类不可实例化,适合在各类Java项目中便捷处理日期时间需求。

qq_37935324的博客 1048

别再手动量了!用Python+Open3D给BIM模型做‘CT扫描’,自动揪出施工误差(附完整代码)

本文介绍如何利用Python和Open3D技术实现BIM模型的毫米级施工误差自动检测。通过点云预处理、模型配准和偏差分析,系统能自动生成三维差异热力图和验收报告,显著提升施工质量检测效率。特别适合混凝土结构错位和钢结构安装偏差等常见问题的智能分析。

weixin_29284657的博客 243

【ARFoundation自学04】AR Tracked Image 图像追踪识别与对应类的调用

1.添加组件 2.创建图像识别库 3.创建识别后追踪的物体(UI、模型等)

leoysq的博客 2560

时间封装

var t = null; t = setTimeout(time, 1000); //開始运行 function time() { clearTimeout(t); //清除定时器 dt = new Date(); var y = dt.getFullYear(); var mt = dt.getMonth() + 1; var day = dt.getDate(); var h = dt.getHours(); //获取时 var m = dt..

小菜鸟的博客 214

uniapp - 解决App端(安卓/苹果)使用uni.openlocation跳转第三方高德地图白屏问题,安卓苹果ios平台使用应用内置地图查看位置打不开,打包后App高德地图页面白屏不显示的问题!

uni-app,安卓Android,苹果ios,安卓app端,苹果App端,uniapp苹果安卓app,高德地图白屏,uniapp调用内置高德地图白屏,uniApp使用uni.openlocation空白不显示地图,uniappapp端如何解决openlocation地图不显示问题,打开第三方地图显示位置地图没反应,uni.openlocation跳转第三方高德地图,APP端白屏问题,使用uni.openlocation跳转到第三方导航软件的时候,app端跳转的是高德地图,但是白屏没有反应,打包发布后白

🏆 前端领域优质创作者 1万+

Java时间与时区的7大常见误区:99%的开发者都曾踩坑(附案例分析+深入解析)

这篇文章深入剖析了 Java 项目中常见的时间与时区处理误区,包括 `LocalDateTime` 无时区陷阱、系统默认时区不一致、数据库 `timestamp` 与 `datetime` 的差异、Jackson 序列化丢失时区、时间戳单位混淆、跨时区展示错误等七大问题。文章通过实际案例、源码分析和最佳实践,结合工具类封装与性能优化建议,帮助开发者全面掌握时间处理的正确姿势,避免线上事故,提升系统稳定性与可维护性。

异常君的博客 1497

告别传统RAG的痛点!Agent Skills让知识库检索更智能(本地知识库搭建新思路:用Agent Skills实现渐进式检索)

传统RAG在知识库检索中存在文档结构丢失、Token消耗大等问题 📚 Agent Skills通过分层索引、渐进式检索等设计,实现了更智能的本地知识库检索方案 🤖 本文详细介绍了Agent Skills的核心设计理念、与传统RAG的对比以及实践建议,帮助你搭建高效的知识库系统 ✅

XiaoqiangClub的博客 693

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

java ps h264_关于对H264码流的PS的封装的相关代码实现

转自:http://www.cnblogs.com/lidabo/p/6604988.html1、写在开始之前:最近因为新工作要维护别人留下的GB模块代码,先熟悉了流程,然后也试着封装了下ps流,结果也能通过测试正常预览了,当然,其中开发读文档的头疼,预览花屏,卡帧的事情都有遇到,当时慢慢的看文档,整理逻辑,也就都顺利解决了,下面把大致的一些流程代码贴出来分享下。既然是对接国标,自然少不了通读它的...

weixin_33426157的博客 478

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Java中常用的类有哪些_那些java中的常用类(一)

本节介绍一下java中那些常用的类,包括:系统相关类(System、Runtime)、日期时间类(Date等)、Object、Math、Random、File、枚举类(Enum)1.系统相关类System类System类是一些与系统相关的属性和方法的集合,且System类中所有的属性和方法都是静态的,要想引用这些属性和方法,直接使用System类调用即可。System类的构造方法是private修...

weixin_34163020的博客 2088

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

java获取取得Timestamp类型的当前系统时间

方法一: Timestamp d = new Timestamp(System.currentTimeMillis()); 方法二: Date date = new Date(); Timestamp nousedate = new Timestamp(date.getTime());

349

Java System 类详解:系统级操作的实用工具

java.lang.System是 Java 处理系统级操作的工具类,构造方法私有,方法均为静态,可直接通过类名调用。 核心方法包括:exit(int status)终止 JVM,0 表示正常退出;currentTimeMillis()返回从 1970 年 1 月 1 日到当前的毫秒数,用于计时等;arraycopy()高效拷贝数组,需注意数组类型匹配及索引范围。 其与 Runtime 类功能各有侧重,System 类更偏向基础系统操作与数组处理,是 Java 开发中常用的基础工具类。

Shabbt的博客 872

java运行系统_Java运行系统命令

之前写过一个版本的Java代码用来调用linux shell脚本,原文如下:http://blog.youkuaiyun.com/sheismylife/article/details/4817851不过没有试过windows下运行,试了一下,还是不错的,把代码做了一些调整,封装成对象,这样更方便多线程下调用,不用担心静态变量互相干扰的问题。先看一下怎么用:public static void main(St...

weixin_34129222的博客 253

java把日期转换成月数_java日期格式转换及其例子收藏

import java.util.Date;import java.text.SimpleDateFormat; publicclass Demo{ publicstaticvoid main(String[] args){ Date now=new Date(); SimpleDateFormat f=newSimpleDateFormat("今天是"+"yyyy年MM月dd日 E kk点mm分...

weixin_36163504的博客 1146

Java常用类

Java为我们提供了那些可以用的类: http://docs.oracle.com/javase/7/docs/api/ 工具包: java.math,算术包 java.text.*,文字处理包 java.util.*,工具包 javax.print.*,打印包 语言特性包: java.lang,语言特性包 javax.annotation.*,注解包

yyfpeak的专栏 599

java实用类

学习java的实用类

xrkhy的博客 1050

赵雅智_java java类

类库、应用程序的编程接口(Application Programming Interface,API):Java系统提供了大量的类和接口供程序开发人员使用,并且按照功能的不同,存放在不同的包中。 java API的概念: java包的分类 Java的核心包(Java core package) java.lang包:Java语言包,主要包含与语言、数据类型相关的类。自动导入 j...

柠檬不萌 168
上一篇: Spring整合mybatis简单配置
下一篇: Spring系统访问多数据库
午-夜
博客等级 码龄12年 95粉丝 133原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值