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 秒

相关推荐
DYS_房东的猫12 分钟前
《 C++ 零基础入门教程》第6章:模板与 STL 算法 —— 写一次,用万次
开发语言·c++·算法
诗意地回家19 分钟前
淘宝小游戏反编译
开发语言·前端·javascript
wangkay8826 分钟前
【Java 转运营】Day04:抖音新号起号前准备全指南
java·开发语言·新媒体运营
点云SLAM26 分钟前
C++ 静态初始化顺序问题(SIOF)和SLAM / ROS 工程实战问题
开发语言·c++·slam·静态初始化顺序问题·工程实战技术·c++static 关键字
D3bugRealm27 分钟前
MATLAB解决物理问题:从基础运动学到进阶力学的实战指南
开发语言·其他·matlab
小李独爱秋30 分钟前
计算机网络经典问题透视:TLS协议工作过程全景解析
运维·服务器·开发语言·网络协议·计算机网络·php
亲爱的非洲野猪33 分钟前
Java线程池深度解析:从原理到最佳实践
java·网络·python
pen-ai1 小时前
打通 Python 与 C++ 的参数传递机制
开发语言·c++·python
亲爱的非洲野猪1 小时前
深入解析享元模式:用Java实现高性能对象复用
java·开发语言·享元模式
qq_401700411 小时前
Qt的.pro文件
开发语言·qt