想必大家对SimpleDateFormat并不陌生。SimpleDateFormat 是 Java 中一个非常常用的类,该类用来对日期字符串进行解析和格式化输出,但如果使用不小心会导致非常微妙和难以调试的问题,因为 DateFormat 和 SimpleDateFormat 类不都是线程安全的,在多线程环境下调用 format() 和 parse() 方法应该使用同步代码来避免问题。下面我们通过一个具体的场景来一步步的深入学习和理解SimpleDateFormat类。
我们可以用java.text.SimpleDateFormat类完成日期的转换和格式化操作,如:
* public String getMessage() 获取异常的信息,返回的是字符串
【强制】SimpleDateFormat 是线程不安全的类,一般不要定义为 static 变量,如果定义为 static,必须加锁,或者使用 DateUtils 工具类。
import java.text.ParseException; import java.util.Calendar; public class DateDemo { public static void main(String [] args) throws ParseException { Calendar c = Calendar.getInstance(); int year =c.get(Calendar.YEAR); int month =c.get(Calendar.MONTH)+1; int day =c.get(Calendar.DAY_OF_MONTH); int week =c.get(Calendar.DAY_OF_WEEK); System.out.println(year+"年 ,"+month+"月,"+day+"日,"+"星期"+week); }
在 Java 中有多种方法可以比较日期,日期在计算机内部表示为(long型)时间点——自1970年1月1日以来经过的毫秒数。在Java中,Date是一个对象,包含多个用于比较的方法,任何比较两个日期的方法本质上都会比较日期的时间。
异常应该尽量提前避免,但是无法做到绝对避免,异常的可能情况太多,开发中只能提前干预。
SimpleDateFormat是Java提供的一个格式化和解析日期的工具类,日常开发中应该经常会用到,但是由于它是线程不安全的,多线程公用一个SimpleDateFormat实例对日期进行解析或者格式化会导致程序出错。
日期处理类 Date类 当前日期时间 java.util.Date import java.util.Date; public class TestDemo { public static void main(String [] args) { Date date = new Date(); System.out.println(date); } } 运行结果: Sat Jun 29 21:56:04 CST 2019 上述的结果表示的就是当前的日期时间,为国际标准的格式; 当然我们可以使
SimpleDateFormat myFormatter = new SimpleDateFormat("yyyy-MM-dd");
1:异常(理解) (1)程序出现的不正常的情况。 (2)异常的体系 Throwable |--Error 严重问题,我们不处理。 |--Exception |--RuntimeException 运行期异常,我们需要修正代码 |--非RuntimeException 编译期异常,必须处理的,否则程序编译不通过 package cn.itcast_01; /* * 异常:程序出现了不正常的情况。 * * 举例:今天天气很好,班长出去旅游。骑着自行车,去山里面呼吸新鲜空气。 * 问题1
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/160247.html原文链接:https://javaforall.cn
题目4: 巧妙利用SimpleDateFormat根据各种信息求日期。2008-11月第6周的星期日是几号?
题目5: 巧妙利用SimpleDateFormat求出: 2008-11-11是星期几?
直接一个类实现。不用再建个对象来存储。支持String,Date ,LocalDate。
import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Scanner;
/*上面例子用的是缺省的文字: 中文,下面说明如果时间的规范是按美国,怎么处理, 比如美语下午是PM?note that if it is US, should AM or PM.*/
众所周知,Java中的日期类是Date,然后日期默认的输出样式很奇怪哦,是这样子的:
import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date;
java常用工具类:时间戳与时间相互转换,需要的拿走! package com.lcry.util; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; /** * 时间戳与时间相互转换工具类 * Created on 2018/12/24. * * @author lcry */ public class DateAndStampUtil { /*
版权声明: https://blog.csdn.net/li_xunhuan/article/details/89041674
之前有一篇关于将UTC时间转换成北京时间的python文章(传送门),这次需要用到java版的,本以为这种小工具网上会很多,但是在网上搜了一圈之后发现都不尽人意。
我们经常在编程时会出现int或者其他类型转成String,String转化成int,下面我总结一下常用的几种转换方式:
定时器Timer与TimerTask 目录:1.代码 2.动态图 1.实例代码: package com.wuage.clm.web; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Timer; import java.util.TimerTask; /** * 类TimerTest.java的实现描述:定时器 * *
摘 要 本文将介绍通过Hadoop Mapreduce实现离线统计网站每日pv的思路及代码。 前言 利用网站的kpi数据来分析出网站潜在的价值,那么了解网站的PV、UV、IP的状况,是一项必不可少的任务。本文将介绍通过Hadoop Mapreduce实现离线统计网站每日pv的思路及代码。 什么是PV pv是指页面的浏览量或点击量(Page View),用户每访问一次或刷新一下即被计算一次。 需求 对网站以往的访问数据进行日pv、月PV、年PV统计。 技术选型 对于访问量大的网站来说,普通程序计算实现成本非
操作步骤: 1. 实现 org.springframework.core.convert.converter.Converter 接口 2. 配置 org.springframework.context.support.ConversionServiceFactoryBean converters 以String转Date为例: 定义转换器: import java.text.ParseException; import java.util.Date; import org.apache.comm
1.代码 package com.css.app.base.org.action; import com.css.restclient.inter.ISysClient; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util
判断当前时间是否在某个时间范围内 各种活动在接口判单当时间是否在【活动】范围内——小时-分钟 import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class CutTime { /** * 判断是否满足时间内 * @param CutTime限制时间 * @return */ public static boolean cutTime(String
结果示意图: A:DateFormat类的概述 * DateFormat 是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并解析日期或时间。是抽象类,所以使用其子类SimpleDat
SimpleDateFormat formatter = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”);
Spring mvc 默认设置对日期和时间参数转换不是很理想,自带的CustomDateEditor 只能传入一个DateFormat,而我们知道SimpleDateFormat 又是线程不安全的,我们可以通过自定义一个PropertyEditorSupport的子类,用其他方式来实现日期格式的转换。少比比,直接上代码:
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/153667.html原文链接:https://javaforall.cn
5:BigInteger(理解) (1)针对大整数的运算 (2)构造方法 A:BigInteger(String s) package cn.itcast_01; import java.math.BigInteger; /* * BigInteger:可以让超过Integer范围内的数据进行运算 * * 构造方法: * BigInteger(String val) */ public class BigIntegerDemo { public static void main(St
import java.text.ParseException; import java.util.HashMap; import java.util.Map; import java.util.regex.Matcher; import java.util.regex.Pattern; import org.apache.commons.lang.StringUtils; public class StringTemplateUtils { public static final Stri
结果示意图 *A:案例演示 * 需求:算一下你来到这个世界多少天? * 分析: * 1、首先把出生日期和现在日期字符串放入变量中 * 2、创建日期格式对象 * 3、把日期字符串转换成日期对象
本来开开心心的周末时光,线上突然就疯狂报错,以为程序炸了,截停日志,发现是就是类似下述一段错误
只需在要再要转换的类型上加上一个 @DateTimeFormat(pattern = “yyyy-MM-dd”) 如下:
工作当中需要执行 string 类型的 java code ,之前有同事用过 mvel ,调研之后发现太多于重量级了,我就想安安静静的执行一段 java 代码 然后得到返回值。后来由调研了一下 jexl3 ,相比于 mvel 用起来简单方便还能满足需求。
本专栏是自己学Java的旅途,纯手敲的代码,自己跟着黑马课程学习的,并加入一些自己的理解,对代码和笔记 进行适当修改。希望能对大家能有所帮助,同时也是请大家对我进行监督,对我写的代码进行建议,互相学习。
【本文目录】 1 异常 1.1 异常概述 1.2 try...catch...finally 捕获异常 1.3 异常的方法 1.4 throws 抛出异常 1.5 finally关键字 1.6 自定义异常 2 File类 2.1 File类概述 2.2 File类功能 2.3 File类案例 3 递归 3.1 递归概述 3.2 递归案例-阶乘 3.3 递归案例-斐波那契数列 3.4 递归案例-扫描文件 ---- 1 异常 1.1 异常概述 异常就是Java程序在运行过程中出现的错误。 程序的异常
首先问大家一个问题:你使用的SimpleDateFormat类还安全吗?我们一起带着这个问题来看本文。
使用mybatis-plus的时候出现了LocalDateTime类(jdk8 中新出现的类 那么我在反序列化的时候出了问题。 我在springboot 2.1.3 中使用以下类结局问题) 用到了下面这个类解决了所有的问题。包括前端传值过来也能直接接受字符串 百度上面也猜了许许多多的坑 最终换了一个spring boot的版本 然后用以下的代码配置完美解决了问题 import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml
一、异常 1. 异常与错误 ① 异常:程序执行过程中的非正常情况,会导致JVM停止,异常是程序员可以解决的。 ② 错误:严重的错误,程序员无法解决,只能修改代码。 2. 异常的体系 Throwable - Error - Exception - RuntimeException # 异常他爹他儿子和他兄弟 3. 异常的分类 ① 运行时异常(RuntimeException) 在程序运行时产生的异常。这个我们可以不用管 ② 编译时异常(除运
最近在写一个Quartz相关的模块,需要实现Date与Quartz的cron之间的相互转换,在网上查了一下竟然没有找到,但是找到一份这样的博客:http://hw1287789687.iteye.com/blog/2004202 给自己了启发,自己在参考该博主的基础上,增加了cron转date的方法,撰写该文章。
我们在开发的过程中,有的时候需要转换一些自定义类型,此时默认的映射方式可能无法满足需要。
年: 2012 月: 1 日: 13 时: 17 分: 28 秒: 19 当前时间毫秒数:1326446899902 Fri Jan 13 17:28:19 CST 2012 Fri Jan 13 17:28:19 CST 2012 格式化后的日期:2012-01-13 17:28:19 字符串转成日期:Fri Jan 13 17:26:33 CST 2012
定时器是一个应用十分广泛的线程工具,可用于调度多个定时任务以后台线程的方式执行。在Java中,可以通过Timer和TimerTask类来实现定义调度的功能。(在java.util包下) A:Time
当我们想根据输入字符串得到一个日期对象时我们不知道,应该以什么格式写这个字符串,才能被系统正确解析,一种聪明的做法是,马克-to-win,我们先 把日期对象根据我们的格式打印出来,之后照打印出来的样子,一丝不差的写这个字符串,这个字符串必定能被系统正确解析。下面这个例子,就是先把日期对象根 据我们的格式打印出来。之后才涉及到解析。
import java.text.DecimalFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; /** * 功能更强大的格式化工具类 */ public class FormatUtils { private static SimpleDateFormat second = new SimpleDateFormat
领取专属 10元无门槛券
手把手带您无忧上云