日期类时间类,日期时间类,单例模式,装箱与拆箱,数字类随机数,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);

原文地址:https://www.cnblogs.com/Andrea-null/p/9471416.html

时间: 2024-08-13 04:21:42

日期类时间类,日期时间类,单例模式,装箱与拆箱,数字类随机数,BigDecimal总结的相关文章

C#基础回顾(二)—页面值传递、重载与重写、类与结构体、装箱与拆箱

一.前言 -孤独的路上有梦想作伴,乘风破浪- 二.页面值传递 (1)C#各页面之间可以进行数据的交换和传递,页面之间可根据获取的数据,进行各自的操作(跳转.计算等操作).为了实现多种方式的数据传递,C#提供一下几种方式: 1.Query.String方式 2.Server.Transfer方式 3.Cookie方式 4.Session方式 5.Application方式 (2)实现方式 新建TestTransfer项目,添加TransferOne.aspx页面和TransferTwo.aspx页

.Net学习笔记----2015-06-25(File类的读写文件、List泛型集合、装箱和拆箱、Dictionary字典集合)

File类:静态类,Create Delete Copy Move ,主要用来对数据对文本文件进行读写 File类:缺点:只能读写小文件 读写操作: //byte[] buffer = File.ReadAllBytes(@"C:\Users\Administrator\Desktop\new.txt"); ////将字节数组中的每一个元素都要按照我们指定的编码各式解码成字符串 ////UTF-8 GB2312 GBK ASCII Unicode //string s = Encodi

Integer类的装箱和拆箱到底是怎样实现的?

先解释一下装箱和拆箱: 装箱就是  自动将基本数据类型转换为包装器类型:拆箱就是  自动将包装器类型转换为基本数据类型. 下表是基本数据类型对应的包装器类型: int(4字节) Integer byte(1字节) Byte short(2字节) Short long(8字节) Long float(4字节) Float double(8字节) Double char(2字节) Character boolean(未定) Boolean 下面是代码: public class BoxAndUnbo

设计模式之PHP项目应用——单例模式设计Memcache和Redis操作类

1 单例模式简单介绍 单例模式是一种经常使用的软件设计模式. 在它的核心结构中仅仅包括一个被称为单例类的特殊类. 通过单例模式能够保证系统中一个类仅仅有一个实例并且该实例易于外界訪问.从而方便对实例个数的控制并节约系统资源.假设希望在系统中某个类的对象仅仅能存在一个.单例模式是最好的解决方式. 2 模式核心思想 1)某个类仅仅能有一个实例: 2)它必须自行创建这个实例: 3)它必须自行向整个系统提供这个实例. 3 模式架构图 4 项目应用 4.1 需求说明 CleverCode在实际的PHP项目

Java ——Number &amp; Math 类 装箱 拆箱 代码块

本节重点思维导图 当需要使用数字的时候,我们通常使用内置数据类型,如:byte.int.long.double 等 int a = 5000; float b = 13.65f; byte c = 0x4a; 需要使用对象,而不是内置数据类型的情形.Java 为每一个内置数据类型提供了对应的包装类. 所有的包装类(Integer.Long.Byte.Double.Float.Short)都是抽象类 Number 的子类  当内置数据类型被当作对象使用的时候,编译器会把内置类型装箱为包装类.相似的

Problem B: 时间和日期类(III)

Problem B: 时间和日期类(III) Time Limit: 4 Sec  Memory Limit: 128 MBSubmit: 2889  Solved: 1732[Submit][Status][Web Board] Description 设计一个日期时间类,用于读取输入的数据,按格式输出日期和时间. 设计日期时间类DateTime由2个成员组成,分别是一个Date类对象和一个Time类对象: 设计DateTime类需支持以下操作: DateTime::DateTime()无参构

Date类,时间和日期格式类

Date类:构造一个反应当前时间的实例.         Date s=new Date(); System.out.println(s); 打印变量s可得到计算机当前时间,可具体到时间单位'秒'. long starttime=System.currentTimeMillis(); long endtime=System.currentTimeMillis(); starttime与endtime会统计一段执行时间,这个时间段就是两个表达式之间的代码所执行的时间.这样可以计算当前代码执行的效率

Android随笔之——Android时间、日期相关类和方法

今天要讲的是Android里关于时间.日期相关类和方法.在Android中,跟时间.日期有关的类主要有Time.Calendar.Date三个类.而与日期格式化输出有关的DateFormat和SimpleDateFormat,今天会稍微提到关于这两个类的用法,下次会找个时间细讲. 一.Time类 在官方的API中,有建议说使用Time代替Calendar,原因不明,据说用Time对CPU的负荷比较小. 在Time中,年月日时分秒的转义字符分别对应%Y%m%d%H%M%S,切记,大小写千万不能写错

【TOJ 5247】C++实验:时间和日期类

描述 用C++实现日期类CDate和时间类CTime,并在次基础上利用多继承实现日期时间类CDateTime,使其能输出样例信息. 主函数里的代码已经给出,请补充完整,提交时请勿包含已经给出的代码. int main() { int y, m, d, hh, mm, ss; while(cin>>y>>m>>d>>hh>>mm>>ss) { CDateTime dt(y,m,d,hh,mm,ss); dt.Print(); ((CDa