simpledateformat

SimpleDateFormat 使用详解

北慕城南 提交于 2020-03-17 22:54:06
某厂面试归来,发现自己落伍了!>>> public class SimpleDateFormat extends DateFormat SimpleDateFormat 是一个以个别敏感的方式格式化和分析数据的具体类。 它允许格式化 (date -> text)、语法分析 (text -> date)和标准化。 SimpleDateFormat 允许以日期-时间格式化选择任何用户指定的方式启动。 但是,希望用 DateFormat 中的getTimeInstance、 getDateInstance 或 getDateTimeInstance 创建一个日期-时间格式化程序。 每个类方法返回一个以缺省格式化方式初始化的日期/时间格式化程序。 可以根据需要用 applyPattern 方法修改格式化方式。 SimpleDateFormat函数的继承关系: java.lang.Object | +----java.text.Format | +----java.text.DateFormat | +----java.text.SimpleDateFormat SimpleDateFormat格式化日期 import java.text.SimpleDateFormat; import java.util.Date; public class test { public static

JAVA Calendar详解

霸气de小男生 提交于 2020-03-17 22:53:48
某厂面试归来,发现自己落伍了!>>> (在文章的最后,将会介绍Date类,如果有兴趣,可以直接翻到最后去阅读) 究竟什么是一个 Calendar 呢?中文的翻译就是日历,那我们立刻可以想到我们生活中有阳(公)历、阴(农)历之分。它们的区别在哪呢? 比如有: 月份的定义 - 阳`(公)历 一年12 个月,每个月的天数各不同;阴(农)历,每个月固定28天 每周的第一天 - 阳(公)历星期日是第一天;阴(农)历,星期一是第一天 实际上,在历史上有着许多种纪元的方法。它们的差异实在太大了,比如说一个人的生日是"八月八日" 那么一种可能是阳(公)历的八月八日,但也可以是阴(农)历的日期。所以为了计时的统一,必需指定一个日历的选择。那现在最为普及和通用的日历就是 "Gregorian Calendar"。也就是我们在讲述年份时常用 "公元几几年"。Calendar 抽象类定义了足够的方法,让我们能够表述日历的规则。Java 本身提供了对 "Gregorian Calendar" 规则的实现。我们从 Calendar.getInstance() 中所获得的实例就是一个 "GreogrianCalendar" 对象(与您通过 new GregorianCalendar() 获得的结果一致)。 下面的代码可以证明这一点: import java.io.*; import java.util.*;

SimpleDateFormat使用详解

帅比萌擦擦* 提交于 2020-03-17 22:53:34
某厂面试归来,发现自己落伍了!>>> public class SimpleDateFormat extends DateFormat SimpleDateFormat 是一个以国别敏感的方式格式化和分析数据的具体类。 它允许格式化 (date -> text)、语法分析 (text -> date)和标准化。 SimpleDateFormat 允许以为日期-时间格式化选择任何用户指定的方式启动。 但是,希望用 DateFormat 中的 getTimeInstance 、 getDateInstance 或 getDateTimeInstance 创建一个日期-时间格式化程序。 每个类方法返回一个以缺省格式化方式初始化的日期/时间格式化程序。 可以根据需要用 applyPattern 方法修改格式化方式。 SimpleDateFormat函数的继承关系: java.lang.Object | +----java.text.Format | +----java.text.DateFormat | +----java.text.SimpleDateFormat 下面是个小例子: import java.text.*; import java.util.Date; /** SimpleDateFormat函数语法: G 年代标志符 y 年 M 月 d 日 h 时 在上午或下午 (1

用户头像上传

生来就可爱ヽ(ⅴ<●) 提交于 2020-03-13 12:22:46
用户头像上传 思路: ​ 将文件保存到指定路径 ​ 为原文件名加上时间戳尽量避免文件名冲突 问题: ​ 上传到应用目录,重新部署项目需要将上传的文件目录拷贝出来。 文件上传Controller @RequestMapping("/uploadAccountImage") public Result uploadAccountImage(@RequestParam("userImage")MultipartFile userImage, HttpServletRequest request){ try{ log.info("[账户管理][账户头像上传]"); String uploadPath = "upload/account/image"; Map<String, String> uploadResult = fileService.upload( FileUtil.appendBeforeDot(userImage.getOriginalFilename(),"_", GetTimeUtil.getNowTimeStamp()), userImage, FileUtil.appendTimePath(uploadPath, FileUtil.TimeUnit.YEAR), request); log.info("[账户管理][账户头像上传]上传结果:uploadResult={

JAVA日期与时间

老子叫甜甜 提交于 2020-03-12 11:50:08
一:java.util.Data 包 Data对象表示一个精确到毫秒的瞬间。 下面我仅介绍它还剩下的为数不多的几个方法(这些方法的共同点是 Date 与毫秒值的转换): 构造方法: Date() : 在底层调用 System.currentTimeMillis() 作为日期参数 Date(long date) : 根据指定的long整数(从1970-1-1 00:00:00以来经过的毫秒数)来生成Date对象. 方法 boolean after(Date when) : 测试this日期是否在指定日期when之后; boolean before(Date when) : 测试this日期是否在指定日期when之前; long getTime() : 获取从1979-01-01 00:00:00 到Date对象之间经过的毫秒值; void setTime(long time) : 设置时间,time含义上同. 二:java.util.calendar 包 由于Data存在很多的缺陷,因此提供了一个calendar抽象类来处理日期和时间。是所有日历类的模板,因此,我们可以继承Calendar来实现其他的历法(比如阴历)。 Java中提供了一种Calendar的默认实现 java.util.GregorianCalendar 格里高利日历(其实JDK还默认提供了一款日本历法 java

Scala的Class、Object、Trait

前提是你 提交于 2020-03-08 16:42:36
开发环境 ideaIU或ideaIC。 idea的scala插件,File-Setting-Plugins,搜索scala在线安装,或下载后离线安装Install plugin from disk。 加载scala的包,Project Structure,Global Libraries,添加scala-sdk。 基础 scala中,break和continue的实现 , 1 package com.padluo.spark.scala.basic 2 import scala.util.control.Breaks._ 3 object BreakTest { 4 def main(args: Array[String]): Unit = { 5 // break 6 breakable { 7 for (i <- 1 to 10 ) { 8 if (i == 2 ) { 9 break () 10 } 11 println(i) 12 } 13 } 14 // continue 15 for (i <- 1 to 10 ) { 16 breakable { 17 if (i == 2 ) { 18 break () 19 } 20 println(i) 21 } 22 } 23 } 24 } 0 until 10 和 0 to 10 的区别,until是0到9,相当于<

Java中各种时间类型的转换

本小妞迷上赌 提交于 2020-03-06 11:05:57
目录 前言: (1)时间戳毫秒级转换成秒级 (2) 时间戳转换成时间类型 (3)普通的时间类型转换成时间戳 (4) 使用第三方类库转换 (5)String 转换成Date (6)Date转换成String (7)Calendar转换成String (8)String 转换成Calendar (9)Date 转换成Calendar 总结: 前言: 受 二哥时间转时间戳的那篇博客 启发,我决定我也要整理一下时间类型的转换。{沉默王二,江湖人称二哥} 在开发过程我们经常遇到时间戳这个类型。 举个例子,创建时间我们一般用Timestamp 这个类型,但是返回给前端的数据有时候会不准确,直接是 1583455581 这样子的,那么这种情况我们需要将其转换成我们熟悉的时间格式, 。 再比如说企业微信官方文档,调用它们的打卡数据的时候,时间类的数据大多数情况下返回时间戳, 那么我们就需要处理一下数据,今天我就来整理一下时间与时间戳格式的互转。 当然了,现在度娘上面有很多像下面这种的在线网页,可以直接转换时间戳和时间。 (1)时间戳毫秒级转换成秒级 //1.第一种方式,将毫秒级转换成秒级 long timeStamp = System.currentTimeMillis(); int timeStamp2 = (int) (timeStamp / 1000); System.out.println

Java日期格式化(DateFormat类和SimpleDateFormat类)

隐身守侯 提交于 2020-03-06 10:02:46
格式化日期表示将日期/时间格式转换为预先定义的日期/时间格式。例如将日期“Fri May 18 15:46:24 CST2016” 格式转换为 “2016-5-18 15:46:24 星期五”的格式。 在 Java 中,可以使用 DateFormat 类和 SimpleDateFormat 类来格式化日期,下面详细介绍这两个格式化日期类的使用。 DateFormat 类 DateFormat 是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并解析日期或时间。日期/时间格式化子类(如 SimpleDateFormat)允许进行格式化(也就是日期→文本)、解析(文本→日期)和标准化日期。 在创建 DateFormat 对象时不能使用 new 关键字,而应该使用 DateFormat 类中的静态方法 getDateInstance(),示例代码如下: DateFormat df = DateFormat.getDatelnstance(); 在创建了一个 DateFormat 对象后,可以调用该对象中的方法来对日期/时间进行格式化。DateFormat 类中常用方法如表 1 所示。 表 1 DateFormat类的常用方法 方法 描述 String format(Date date) 将 Date 格式化日期/时间字符串 Calendar getCalendar()

java日期格式大全 format SimpleDateFormat(留用)

若如初见. 提交于 2020-03-05 20:19:22
java日期格式大全 format SimpleDateFormat /** * 字符串转换为java.util.Date<br> * 支持格式为 yyyy.MM.dd G 'at' hh:mm:ss z 如 '2002-1-1 AD at 22:10:59 PSD'<br> * yy/MM/dd HH:mm:ss 如 '2002/1/1 17:55:00'<br> * yy/MM/dd HH:mm:ss pm 如 '2002/1/1 17:55:00 pm'<br> * yy-MM-dd HH:mm:ss 如 '2002-1-1 17:55:00' <br> * yy-MM-dd HH:mm:ss am 如 '2002-1-1 17:55:00 am' <br> * @param time String 字符串<br> * @return Date 日期<br> */ public static Date stringToDate(String time){ SimpleDateFormat formatter; int tempPos=time.indexOf("AD") ; time=time.trim() ; formatter = new SimpleDateFormat ("yyyy.MM.dd G 'at' hh:mm:ss z"); if(tempPos>-1){

java并发之ThreadLocal

不想你离开。 提交于 2020-03-04 07:47:39
ThreadLocal的思考: 描述: 方法1:传入秒数,new一个SimpleDataFormat对象,返回时间字符串 方法2:生成两个线程,每个线程都去调用方法1来打印不同秒数的时间 结果:运行正常 进一步思考:要是1000个线程呢?用线程池,生成10线程 进一步思考:在方法1中,每次调用都会new一个SimpleDataFormat对象,浪费开销 解决方法:将SimpleDataFormat作为全局变量 运行结果:线程出现并发冲突问题,会有相同时间结果。原因是多个线程共享了SimpleDataFormat对象。 解决方法:加锁,用synchronized 进一步思考:虽然现在sm只生成了一次,但多个线程在加锁部分部分代码是串行执行的,没有并发,效率低 优化:在线程池有10线程,让每个线程都有自个的sm对象,这样,10线程之间就可以并发执行,sm也没有创建很多个 实现方式: 用ThreadLocal给当前线程赋予独立的变量 另一个场景,服务器接收请求,有用户信息,不同方法使用同一个用户信息。 分析:不同请求对应不同线程,每个线程都用ThreadLocal来保存用户信息,则不会发生冲突,且用户信息也不用作为方法参数传来传去 源码分析: 在Thread对象中,有一个map,key为ThreadLocal对象,value为用户定义的值,这样,每个线程都有独立的变量存储map