Java中操作数组、时间的小知识点

1、数组并集

以下实例演示了如何使用 union ()方法来计算两个数组的并集:

java 复制代码
import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;


public class Main {
    public static void main(String[] args) throws Exception {
        String[] arr1 = { "1", "2", "3" };
        String[] arr2 = { "4", "5", "6" };
        String[] result_union = union(arr1, arr2);
        System.out.println("并集的结果如下:");

        for (String str : result_union) {
            System.out.println(str);
        }
    }

    // 求两个字符串数组的并集,利用set的元素唯一性
    public static String[] union(String[] arr1, String[] arr2) {
        Set<String> set = new HashSet<String>();

        for (String str : arr1) {
            set.add(str);
        }

        for (String str : arr2) {
            set.add(str);
        }

        String[] result = {  };

        return set.toArray(result);
    }
}

以上代码运行输出结果为:

并集的结果如下:

3

2

1

6

5

4

2、格式化时间(SimpleDateFormat)

以下实例演示了如何使用 SimpleDateFormat 类的 format(date) 方法来格式化时间

java 复制代码
import java.text.SimpleDateFormat;
import java.util.Date;

public class Main{
    public static void main(String[] args){
        Date date = new Date();
        String strDateFormat = "yyyy-MM-dd HH:mm:ss";
        SimpleDateFormat sdf = new SimpleDateFormat(strDateFormat);
        System.out.println(sdf.format(date));
    }
}

以上代码运行输出结果为:

2019-03-27 21:13:23

3、获取当前时间

以下实例演示了如何使用 Date 类及 SimpleDateFormat 类的 format(date) 方法来输出当前时间:

java 复制代码
import java.text.SimpleDateFormat;
import java.util.Date;

public class Main{
    public static void main(String[] args){

        SimpleDateFormat sdf = new SimpleDateFormat();// 格式化时间 
        sdf.applyPattern("yyyy-MM-dd HH:mm:ss a");// a为am/pm的标记  
        Date date = new Date();// 获取当前时间 
        System.out.println("现在时间:" + sdf.format(date)); // 输出已经格式化的现在时间(24小时制) 
    } 
}

以上代码运行输出结果为:

现在时间:2015-03-27 21:27:28 下午

大写M表示月,小写m表示分,大写H是24小时制,小写h是12小时制

4、获取年份、月份等

以下实例演示了如何使用 Calendar 类来输出年份、月份等:

java 复制代码
import java.util.Calendar;

public class Main {
    public static void main(String[] args) {
        Calendar cal = Calendar.getInstance();
        int day = cal.get(Calendar.DATE);
        int month = cal.get(Calendar.MONTH) + 1;
        int year = cal.get(Calendar.YEAR);
        int dow = cal.get(Calendar.DAY_OF_WEEK);
        int dom = cal.get(Calendar.DAY_OF_MONTH);
        int doy = cal.get(Calendar.DAY_OF_YEAR);

        System.out.println("当期时间: " + cal.getTime());
        System.out.println("日期: " + day);
        System.out.println("月份: " + month);
        System.out.println("年份: " + year);
        System.out.println("一周的第几天: " + dow);  // 星期日为一周的第一天输出为 1,星期一输出为 2,以此类推
        System.out.println("一月中的第几天: " + dom);
        System.out.println("一年的第几天: " + doy);
    }
}

以上代码运行输出结果为:

当期时间: Fri Mar 27 21:44:15 CST 2015

日期: 27

月份: 3

年份: 2015

一周的第几天: 6

一月中的第几天: 27

一年的第几天: 86

在格里高利历和罗马儒略历中一年中的第一个月是 JANUARY,它为 0;最后一个月取决于一年中的月份数。

所以这个值的初始值为0,所以我们用它来表示日历月份时需要加1

5、时间戳转换成时间

以下实例演示了如何使用 SimpleDateFormat 类的 format() 方法将时间戳转换成时间。

日期和时间模式(注意大小写,代表的含义是不同的):

  • yyyy:年
  • MM:月
  • dd:日
  • hh:1~12小时制(1-12)
  • HH:24小时制(0-23)
  • mm:分
  • ss:秒
  • S:毫秒
  • E:星期几
  • D:一年中的第几天
  • F:一月中的第几个星期(会把这个月总共过的天数除以7)
  • w:一年中的第几个星期
  • W:一月中的第几星期(会根据实际情况来算)
  • a:上下午标识
  • k:和HH差不多,表示一天24小时制(1-24)
  • K:和hh差不多,表示一天12小时制(0-11)
  • z:表示时区
java 复制代码
import java.text.SimpleDateFormat;
import java.util.Date;

public class Main{
    public static void main(String[] args){
        Long timeStamp = System.currentTimeMillis();  //获取当前时间戳
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String sd = sdf.format(new Date(Long.parseLong(String.valueOf(timeStamp))));           // 时间戳转换成时间
        System.out.println("格式化结果:" + sd);

        SimpleDateFormat sdf2 = 
            new SimpleDateFormat("yyyy 年 MM 月 dd 日 HH 时 mm 分 ss 秒");
        String sd2 = sdf2.format(
            new Date(Long.parseLong(String.valueOf(timeStamp))));
        System.out.println("格式化结果:" + sd2);
   }
}

以上代码运行输出结果为:

格式化结果:2018-07-10 12:17:34

格式化结果:2018 年 07 月 10 日 12 时 17 分 34 秒

相关推荐
AAA阿giao3 分钟前
从“操纵绳子“到“指挥木偶“:Vue3 Composition API 如何彻底改变前端开发范式
开发语言·前端·javascript·vue.js·前端框架·vue3·compositionapi
小裴(碎碎念版)5 分钟前
文件读写常用操作
开发语言·爬虫·python
Java爱好狂.11 分钟前
Java面试Redis核心知识点整理!
java·数据库·redis·分布式锁·java面试·后端开发·java八股文
sheji341621 分钟前
【开题答辩全过程】以 基于Java的应急安全学习平台的设计与实现为例,包含答辩的问题和答案
java·开发语言·学习
winfield82123 分钟前
MCP 协议详解
开发语言·网络·qt
程序员小假33 分钟前
我们来说一下消息的可靠性投递
java·后端
席之郎小果冻41 分钟前
【04】【创建型】【聊一聊,建造者模式】
java·前端·建造者模式
原来是好奇心1 小时前
深入Spring Boot源码(四):Starter机制与依赖管理深度解析
java·源码·springboot·starter
阿杆1 小时前
如何在 Spring Boot 中接入 Amazon ElastiCache
java·数据库·redis