[java][代码]DateUtil用于处理日期和时间

news2024/9/28 23:24:10

代码是一个Java工具类,名为DateUtil,用于处理日期和时间。它提供了多种日期格式的转换和解析功能。以下是类中定义的一些关键点:

  1. 日期格式常量:定义了多个DateFormat对象,用于不同的日期时间格式,例如yyyy-MM-ddyyyy-MM-dd HH:mm:ss等。

  2. 格式化方法:提供了多个formatDate方法的重载版本,用于将Date对象或其它日期对象格式化为指定格式的字符串。

  3. 获取当前时间getNowTime方法允许用户传入一个日期格式字符串,并返回当前日期时间按照该格式的字符串表示。

  4. 解析方法:提供了parse2Calparse2Date方法,用于将字符串解析为GregorianCalendarDate对象。

  5. 特殊日期解析getSwitchDategetSwitchDate2方法用于解析特定格式的日期字符串。

  6. 日期分隔符常量DATE_SEPARATOR定义了程序中主要使用的日期分隔符,用于解析日期。

  7. 字符串解析工具sToken是一个StringTokenizer对象,用于在解析日期时分割字符串。

这个工具类非常实用,因为它封装了日期时间的常见操作,使得在Java程序中处理日期和时间变得更加方便。


import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.StringTokenizer;

/**
 * @author lixiang
 * 
 * 日期结构化类
 */
public class DateUtil {
	public static final DateFormat df = new SimpleDateFormat("yyyy-MM-dd");

	public static final DateFormat dfv2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

	public static final DateFormat dfv3 = new SimpleDateFormat("yyyy");
	
	public static final DateFormat dfv4 = new SimpleDateFormat("yyMMddHHmmss");
	
	public static final DateFormat dfv5 = new SimpleDateFormat("yyyy/MM/dd HH:mm");

	public static final DateFormat dfvcn = new SimpleDateFormat("yyyy年MM月dd日");
	
	public static final DateFormat dfv6 = new SimpleDateFormat("yyyyMMddHHmmss");
	
	public static final DateFormat dfv7 = new SimpleDateFormat("yyyyMMdd");
	
	public static final DateFormat dfv8 = new SimpleDateFormat("yyyy-MM-dd HH:mm");

	public static final String formatDate(Date date) {
		return df.format(date);
	}

	public static final String formatDate(Object date) {
		return df.format(date);
	}

	public static final String formatDateV2(Date date) {
		return dfv2.format(date);
	}

	public static final String formatDateV2(Object date) {
		return dfv2.format(date);
	}

	public static final String formatDateOnlyYear(Date date) {
		return dfv3.format(date);
	}

	public static final String formatDateOnlyYear(Object date) {
		return dfv3.format(date);
	}
	
	public static final String formatDateV4(Date date) {
		return dfv4.format(date);
	}

	public static final String formatDateV4(Object date) {
		return dfv4.format(date);
	}

	public static final String formatDateEncodeCN(Date date) {
		return dfvcn.format(date);
	}

	public static final String formatDateEncodeCN(Object date) {
		return dfvcn.format(date);
	}
	
	public static final String formatDateV5(Date date) {
		return dfv5.format(date);
	}

	public static final String formatDateV5(Object date) {
		return dfv5.format(date);
	}
	
	public static final String formatDateV6(Date date) {
		return dfv6.format(date);
	}

	public static final String formatDateV6(Object date) {
		return dfv6.format(date);
	}
	
	public static final String formatDateV7(Date date) {
		return dfv7.format(date);
	}

	public static final String formatDateV7(Object date) {
		return dfv7.format(date);
	}
	
	public static final String formatDateV8(Date date) {
		return dfv8.format(date);
	}

	public static final String formatDateV8(Object date) {
		return dfv8.format(date);
	}

	public static final String getNowTime(String syntax) {
		DateFormat dateFormat = new SimpleDateFormat(syntax);
		return dateFormat.format(new Date());
	}

	public static final SimpleDateFormat sDateFormat = new SimpleDateFormat("yyyy-MM-dd");
	public static final SimpleDateFormat sFullFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
	/**
	 * 程序中主要的日期分隔符为"-"和"/",且日期序列为“年/月/日”型,其内容缺一不可 例如:09/02/02或2009-02-02
	 */
	public static final String DATE_SEPARATOR = "-/";
	/** 作日期分析之用 */
	static StringTokenizer sToken;

	/** 将日期变为字符串格式 * */
	public static String format(GregorianCalendar pCal) {
		return sDateFormat.format(pCal.getTime());
	}

	public static String format(Date pDate) {
		return sDateFormat.format(pDate);
	}

	public static String fullFormat(Date pDate) {
		return sFullFormat.format(pDate);
	}

	/** 将字符串格式的日期转换为Calender* */
	public static GregorianCalendar parse2Cal(String pDateStr) {
		sToken = new StringTokenizer(pDateStr, DATE_SEPARATOR);
		int vYear = Integer.parseInt(sToken.nextToken());
		// GregorianCalendar的月份是从0开始算起的,变态!!
		int vMonth = Integer.parseInt(sToken.nextToken()) - 1;
		int vDayOfMonth = Integer.parseInt(sToken.nextToken());
		return new GregorianCalendar(vYear, vMonth, vDayOfMonth);
	}

	/** 将字符串类型的日期(yyyy-MM-dd)转换成Date* */
	public static Date parse2Date(String pDate) {
		try {
			return sDateFormat.parse(pDate);
		} catch (ParseException e) {
			e.printStackTrace();
			return null;
		}

	}

	/**
	 * 将字符串转换成一个日期
	 * 
	 * @param startDate
	 * @return
	 */
	public static Date getSwitchDate(String startDate) {
		Date dt = null;
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
		try {
			dt = sdf.parse(startDate);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return dt;
	}

	/**
	 * 将字符串转换成一个日期
	 * 
	 * @param startDate
	 * @return
	 */
	public static Date getSwitchDate2(String startDate) {
		Date dt = null;
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		try {
			dt = sdf.parse(startDate);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return dt;
	}
	
	public static Date getSwitchDate3(String startDate) {
		Date dt = null;
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS");
		try {
			dt = sdf.parse(startDate);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return dt;
	}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2175097.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

哪些AI软件能轻松搞定你的文案、总结、论文、计划书?

大家好!在我们每天紧张忙碌的生活中,有时候一天结束时,我们还有一堆事情等着处理。 图片 但别担心,今天我要为大家介绍几款AI软件,它们可以在你忙碌的一天结束后,成为你的得力助手,帮你轻松管…

初识Tomcat

Tomcat是一款可以运行javaWebAPP的服务器软件。 一个服务器想要执行java代码,则需要JRE(jvm、java运行环境等),但是需要执行javaWEB项目则还需要服务器软件,Tomacat就是其中很流行的一款。因为一个javaWEB项目会有很多…

Accelerate单卡,多卡config文件配置

依赖库 from accelerate import Accelerator from accelerate import DistributedDataParallelKwargs ddp_kwargs DistributedDataParallelKwargs(find_unused_parametersTrue) accelerator Accelerator(kwargs_handlers[ddp_kwargs]) 代码中删除所有的.cuda() 或者to(devic…

Xshell连接服务器

一、Xshell-7.0.0164p、Xftp 7下载 1.1、文件下载 通过网盘分享的文件:xshell 链接: https://pan.baidu.com/s/1qc0CPv4Hkl19hI9tyvYZkQ 提取码: 5snq –来自百度网盘超级会员v2的分享 1.2、ip连接 下shell和xftp操作一样:找到文件—》新建—》名称随…

【英特尔IA-32架构软件开发者开发手册第3卷:系统编程指南】2001年版翻译,1-1

文件下载与邀请翻译者 学习英特尔开发手册,最好手里这个手册文件。原版是PDF文件。点击下方链接了解下载方法。 讲解下载英特尔开发手册的文章 翻译英特尔开发手册,会是一件耗时费力的工作。如果有愿意和我一起来做这件事的,那么&#xff…

论文不同写作风格下的ChatGPT提示词分享

学境思源,一键生成论文初稿: AcademicIdeas - 学境思源AI论文写作 在学术论文写作中,不同的写作风格能显著影响文章的表达效果与读者的理解。无论是描述性、分析性、论证性,还是批判性写作风格,合理选择和运用恰当的写…

生成模型小结

突然发现之前整理的makedown有必要放在博客里面,这样不同的设备之间可以直接观看达到复习的效果. GAN G和D不断的博弈提高自己。GAN的优点是保真度比较高,缺点是多样性比较低。 (auto-encoder)AE,DAE、VAE、VQVAE 输入x,经过编码器生成&…

Elasticsearch学习笔记(2)

索引库操作 在Elasticsearch中,Mapping是定义文档字段及其属性的重要机制。 Mapping映射属性 type:字段数据类型 1、字符串: text:可分词的文本,适用于需要全文检索的情况。keyword:用于存储精确值&am…

二阶低通滤波器(Simulink仿真)

1、如何将S域传递函数转为Z域传递函数 传递函数如何转化为差分方程_非差分方程转成差分方程-CSDN博客文章浏览阅读4.1k次,点赞4次,收藏50次。本文介绍了如何将传递函数转化为差分方程,主要适用于PLC和嵌入式系统。通过MATLAB的系统辨识工具箱获取传递函数,并探讨了离散化方…

OpenCV第十二章——人脸识别

1.人脸跟踪 1.1 级联分类器 OpenCV中的级联分类器是一种基于AdaBoost算法的多级分类器,主要用于在图像中检测目标对象。以下是对其简单而全面的解释: 一、基本概念 级联分类器:是一种由多个简单分类器(弱分类器)级联组…

Yolov10环境配置

参考文章:1.YOLOv10超详细环境搭建以及模型训练(GPU版本)-CSDN博客 2.Windows下安装pytorch教程(下载.whl的方式)_pytorch whl-CSDN博客 安装步骤和文件夹顺序一样 1.安装CUDA和cuDNN 1.1安装CUDA 1.1.1查看当前你的电脑显卡支持的最高CUD…

Docker从入门到精通_02 Docker魔法之旅:零基础Linux用户也能轻松驾驭的安装部署指南

文章目录 Docker从入门到精通_02 Docker魔法之旅:零基础Linux用户也能轻松驾驭的安装部署指南一 操作系统安装二 操作系统环境准备2.1 关闭防火墙2.1.2.2 关闭selinux2.2.1 临时关闭selinux2.2.2 永久关闭selinux 三 docker引擎安装3.1 从get.docker.com 下载 get-d…

02-ZYNQ linux开发环境安装,基于Petalinux2022.2和Vitis2022.2

petalinux安装 Petalinux 工具是 Xilinx 公司推出的嵌入式 Linux 开发套件,包括了 u-boot、Linux Kernel、device-tree、rootfs 等源码和库,以及 Yocto recipes,可以让客户很方便的生成、配置、编译及自定义 Linux 系统。Petalinux 支持 Ver…

了解 如何使用同快充充电器给不同设备快速充电

在这科技发展迅速的时代,快充技术已经走进了我们生活,不得不说有了快充技术的对比,传统的充电模式已经满足不了人们对充电速度的要求。就比如用华为输出100 W快充充电器为手机充电大概需要23分钟充满100%电量,而传统的充电器则需要…

可以免费制作表情包的AI工具来了!

一直想自己制作一套表情包,但一直没有找到好用的工具,要么就是太麻烦,要么就是不免费。 今天AI表情包免费制作工具来了,手机就可以直接做表情包,非常方便。 先看效果~ 工具用到的是通义APP,可以在频道中找…

车辆重识别(利用扩散模型合成有效数据进行行人再识别预训练)论文阅读2024/9/27

[1]Synthesizing Efficient Data with Diffusion Models for Person Re-Identification Pre-Training 作者:Ke Niu1, Haiyang Yu1, Xuelin Qian2, Teng Fu1, Bin Li1, Xiangyang Xue1*单位:1复旦大学, 2西北工业大学 摘要: 现有的行人重识别…

若伊(前后端分离)学习笔记

基础应用篇 1. 若伊搭建 若伊版本 若依官方针对不同开发需求提供了多个版本的框架,每个版本都有其独特的特点和适用场景: 前后端混合版本 :RuoYi结合了SpringBoot和Bootstrap的前端开发框架,适合快速构建传统的Web应用程序&…

画两个数的平方和的曲线

代码1: from mpl_toolkits import mplot3d import numpy as np import matplotlib.pyplot as plt# Creating dataset x np.outer(np.linspace(-3, 3, 32), np.ones(32)) y x.copy().T # transpose z (x **2 y **2 )# Creating figure fig plt.figure(figsize …

Android Studio :The emulator process for AVD was killed。

问题描述&#xff1a; 创建虚拟器&#xff0c;点击运行后提示&#xff1a;<font style"color:rgb(34, 34, 38);">The emulator process for AVD was killed</font> 分析原因&#xff1a; 虚拟机安装路径中包含中文字符导致乱码 > Android Studio …

锦天云中秋之夜团圆家宴圆满成功

2024年9月7日&#xff0c;锦天云&#xff08;深圳&#xff09;计算机设备有限公司 在中国深圳成功举办了“融创智合•月满锦天 锦天云中秋之夜团圆家宴。本次盛会吸引了来自各行业的精英和合作伙伴&#xff0c;大家齐聚一堂&#xff0c;共同庆祝这一传统佳节&#xff0c;此次活…