日期类时间类,日期时间类,单例模式,装箱与拆箱,数字类随机数,BigDecimal总结
1.日期类,时间类,日期时间类
初步日期使用方法及格式转换方法(旧方法):
格式://Mon Jul 30 11:26:05 CST 2018 年月日时分秒 CST代表北京时间
获取当前毫秒
- Date date = new Date();
转换时间格式:
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- String s = sdf.format(date);
日历类的使用
- Calendar c1 = Calendar.getInstance();
- int year = c1.get(c1.YEAR);
- int month = c1.get(c1.MONTH);
打印日历示例(新方法:LocalDate时间类)
- public static void getMonth(int year,int month){
- LocalDate date = LocalDate.of(year, month, 1);
- /**
- * 判断月
- */
- int days = 0;
- if(month == 1 ||month == 3 ||month == 5||month == 7||month == 8 ||month == 10 || month == 12){
- days = 31;//31天
- }else if(month == 2){
- //2月份
- if(date.isLeapYear()){
- days = 29;//29天
- }else{
- days = 28;//28天
- }
- }else{
- days = 30;//30天
- }
- //判断当前月第一天是周几
- int week = date.getDayOfWeek().getValue();
- /**
- * 一 二 三 四 五 六 日
- * 1 2 3 4
- * 5 6
- */
- //第一行,打印"日 一 二 三 四 五 六"
- //第二行,打印,根据星期打印空格,
- //之后打印1--(30 31 28 29)
- System.out.println("日\t一\t二\t三\t四\t五\t六");
- //打印空格
- int count = 0;
- for (int i = 1; i < week; i++) {
- count++;
- System.out.print("\t");
- }
- //1 ---- 31 29 30
- for (int i = 1; i <=days; i++) {
- count++;//接着之前的空格计算
- System.out.print(i+"\t");//不换行打印
- if(count%7==0){//每行7个字符。换行
- System.out.println();
- }
- }
- }
- public static void main(String[] args) {
- getMonth(2018, 7);
- for(int i=1;i<=12;i++){
- System.out.println("\n*********************************************");
- getMonth(2019, i);
- System.out.println("\n*********************************************");
- }
- }
- }
LocalDate 创建日期类,日期的格式化,快速创建日期的方法,获取年月日,判断闰年的方法
LocalTime 创建时间的类,时分秒的格式化
LocalDateTime日期时间类
DateTimeFormatter类-----"yyyy-MM-dd HH:mm:ss"
可以说,LocalDateTime里可以包含LocalDate类的信息和LocalTime类的信息
LocalDate使用示例:
- //判断当前年是否是闰年
- LocalDate localDate1 = LocalDate.now();
- boolean leapYear = localDate1.isLeapYear();
- //2001 1 1 快速的构建一个日期类LocalDate of()方法去构建
- LocalDate ld2 = LocalDate.of(2001, 1, 1);
LocalTime使用举例:用来返回当前时间
- LocalDateTime dateTime = LocalDateTime.now();
- System.out.println(dateTime);
- //格式化日期格式的类DateTimeFormatter
- DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyy-MM-dd HH:mm:ss");
- //把LocalDateTime类型转化为String字符串类型
- String strDateTime = dtf.format(dateTime);
- //获取当前月份,获取当前年份,时分秒
- LocalDateTime date = LocalDateTime.now();
- date.getYear();
- date.getMonth();
- date.getHour();
- date.getMinute();
- date.getSecond();
2.String某些函数用法
- //不区分大小写判断是否相等
- str1.equalsIgnoreCase(str2)
- //字符串是否包含另一个串
- str1.contains("a")
- //找到字符串中下标为1的字符
- str1.charAt(1)
- //截取字符串,包含前不包含后
- String newStr = str.substring(1,5);
- //按逗号分割成String数组
- String[] ss =strs.split(",");
- //trim()方法,只能去前后空格,中间空格去不掉
- String s = str3.trim();
- //检查字符串的尾串是不是逗号
- countstr.endsWith(",")
- //替换所有的逗号为空字符
- countstr.replace(",","");
- //最后一个点的位置
- email.lastIndexOf(".")
- //第一个@的位置
- email.indexOf("@")
String与StringBuffer的区别
1、String的值不可以改变,只能改变内存地址的指向。所以String类在修改字符串方面的效率较低。StringBuffer的值可以改变,带有缓冲区,方便进行内容修改。
2、String类中连接用’+’,而StringBuffer用append方法做数据连接
StringBuffer类中定义的方法全部使用同步定义,属于线程安全操作
StringBuilder类没有同步定义,都是异步方法,属于非线程安全操作
String与StringBuffer相互转换
- StringBuffer strBuff = new StringBuffer("新字符串:");
- for (int i = 0; i < ss.length; i++) {
- strBuff.append(ss[i]+",");//将后面加上逗号,放入缓冲区
- }
- System.out.println(strBuff.toString());
- strBuff.deleteCharAt(strBuff.length()-1);
- //去掉最后一个逗号,不用返回,直接拿strBuff操作
- System.out.println(strBuff.toString());
- //新字符串:今天,天气真的不错,我们一起去爬山吧,好的
- char a[] = new char[]{'[','2','0','1','8',']'};
- strBuff.insert(0,a);
- //strBuff.insert(0, "[2018] ");
- System.out.println(strBuff.toString());
正则表达式用法
- String reg = "^[0-9]{0,9}";//零到九
- //*所有
- //.占位符
- boolean flag = "12".matches(reg);
- System.out.println(flag);
数字包装类
包装类解决了基本数据类型,不能使用对象的问题
1、 装箱--->把基本数据类型转化成相应的包装类
- Integer i = new Integer(a);
- Integer i1 = new Integer("100");
- Double d1 = new Double(b);
- char c2 = new Character('a');
自动装箱:
- Integer iii = 1000;
- Character c1 = 'a';
- double b = 10.10;
2、 拆箱--->把包装类转化为基本数据类型(自动拆箱和手动拆箱)
手动拆箱:
- int i_3 = i1.intValue();
- double d_2 = d1.doubleValue();
- boolean bool1_2 = bool1.booleanValue();
自动拆箱
- int i__3 = i;
- int i1__3 = i1;
3、 String和包装类及基本数据类型的转化
- String str5 = "2312";
- String str6 = "2345.23.23";
- String str7 = "23.12d";
- String str2 = "1000";
- int ii2 = Integer.valueOf(str2);
- //如果str5加上L字符,转化将有异常
- Long str5_1 = Long.valueOf(str5);
- //出现多个点的话,转化有错误
- double str6_1 = Double.valueOf(str6);
日期类时间类,日期时间类,单例模式,装箱与拆箱,数字类随机数,BigDecimal总结的更多相关文章
- C#基础回顾(二)—页面值传递、重载与重写、类与结构体、装箱与拆箱
一.前言 -孤独的路上有梦想作伴,乘风破浪- 二.页面值传递 (1)C#各页面之间可以进行数据的交换和传递,页面之间可根据获取的数据,进行各自的操作(跳转.计算等操作).为了实现多种方式的数据传递,C ...
- Integer类的装箱和拆箱到底是怎样实现的?
先解释一下装箱和拆箱: 装箱就是 自动将基本数据类型转换为包装器类型:拆箱就是 自动将包装器类型转换为基本数据类型. 下表是基本数据类型对应的包装器类型: int(4字节) Integer byt ...
- 1.1 JAVA装箱和拆箱以及Java Number & Math&Character 类
JAVA装箱和拆箱 从Java SE5开始就提供了自动装箱的特性,如果要生成一个数值为10的Integer对象,只需要这样就可以了.原文链接: http://www.cnblogs.com/dolph ...
- java - day010 - 基本类型包装,自动装箱和拆箱,日期,集合
基本类型的包装类 byte Byte short Short int Integer long Long float Float double Double char Character boolea ...
- Java基础(35):装箱与拆箱---Java 中基本类型和包装类之间的转换(Wrapper类)
基本类型和包装类之间经常需要互相转换,以 Integer 为例(其他几个包装类的操作雷同哦): 在 JDK1.5 引入自动装箱和拆箱的机制后,包装类和基本类型之间的转换就更加轻松便利了. 那什么是装箱 ...
- Integer类的装箱和拆箱实现
反编译:是指通过对他人软件的目标程序(比如可执行程序)进行“逆向分析.研究”工作,以推导出他人的软件产品所使用的思路.原理.结构.算法.处理过程.运行方法等设计要素,某些特定情况下可能推导出源代码.反 ...
- 设计模式之PHP项目应用——单例模式设计Memcache和Redis操作类
1 单例模式简单介绍 单例模式是一种经常使用的软件设计模式. 在它的核心结构中仅仅包括一个被称为单例类的特殊类. 通过单例模式能够保证系统中一个类仅仅有一个实例并且该实例易于外界訪问.从而方便对实例个 ...
- Java ——Number & Math 类 装箱 拆箱 代码块
本节重点思维导图 当需要使用数字的时候,我们通常使用内置数据类型,如:byte.int.long.double 等 int a = 5000; float b = 13.65f; byte c = 0 ...
- Android随笔之——Android时间、日期相关类和方法
今天要讲的是Android里关于时间.日期相关类和方法.在Android中,跟时间.日期有关的类主要有Time.Calendar.Date三个类.而与日期格式化输出有关的DateFormat和Simp ...
随机推荐
- openpyxl一点心得
先上代码 from openpyxl import workbook,load_workbook class HomeWork(): def creat_xlsx(self): "" ...
- MYSQL批量删除大量数据
DELETE FROM '表' WHERE '字段'=1 会发现删除失败,因为lock wait timeout exceed的错误: 通过LIMIT参数分批删除,因为如果不用limit,删除大量数据 ...
- Add `gem 'sqlite3'` to your Gemfile
错误:Specified 'sqlite3' for database adapter, but the gem is not loaded. Add `gem 'sqlite3'` to your ...
- nginx+lua+kafka 编写 在线日志上报系统
案例一 rewrite_by_lua ' --引入openresty自带的json处理对象 local cjson = require("cjson") local produce ...
- redis-dump安装与导出redis数据
一.安装redis-dump redis-dump安装的时候一般都会遇到下面的错误: ERROR: Error installing redis-dump:redis requires Ruby ve ...
- node杂谈(一)
在node中var作用域为当前js文件 每一个js文件都是一个module对象 global为全局对象,可以用在不同js之间访问(不要设立过多的全局对象,除非必要,比如设立生产环境还是开发环境) a ...
- ELT(数据仓库技术) 学习
ETL工具比较: https://blog.csdn.net/wjandy0211/article/details/78611801 ETL之kettle使用总结:(批量.含常量)csv入库: htt ...
- window下mongodb的安装和环境搭建
一.下载安装包或者压缩包 1.下载 mongodb官网社区版下载页面 开发者一般使用社区版即可 3.6.3版本仅支持64位版本 2.安装 mongo compass是一个图形界面管理工具,安装过程非常 ...
- Json格式获取接口返回的值
关键字:Set Variable Get Json Value to json Get From Dictionary 具体关键字用法不再说明,可百度一下 ...
- UI设计之动画—从虚拟到现实
以下内容由摹客团队翻译整理,仅供学习交流,摹客iDoc是支持智能标注和切图的产品协作设计神器. 用户界面设计中的动画一直是这几年热议的话题,尤其活跃在概念动画领域.它为设计师提供创造性实验并推动UI动 ...