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 秒

相关推荐
皮皮林5513 小时前
使用 Java + WebSocket 实现简单实时双人协同 pk 答题
java·websocket
码小凡5 小时前
优雅!用了这两款插件,我成了整个公司代码写得最规范的码农
java·后端
掉鱼的猫6 小时前
Solon AI 五步构建 RAG 服务:2025 最新 AI + 向量数据库实战
java·redis·后端
java金融7 小时前
FactoryBean 和BeanFactory的傻傻的总是分不清?
java·后端
独立开阀者_FwtCoder7 小时前
Nginx 通过匹配 Cookie 将请求定向到特定服务器
java·vue.js·后端
名曰大神7 小时前
AEM6.5集成Redis详细步骤(附代码)
java·redis·demo·aem
带刺的坐椅7 小时前
Solon AI 五步构建 RAG 服务:2025 最新 AI + 向量数据库实战
java·redis·ai·solon·rag
东阳马生架构8 小时前
商品中心—7.自研缓存框架的技术文档
java
晴空月明10 小时前
线程安全与锁机制深度解析
java
天天摸鱼的java工程师11 小时前
你如何处理一个高并发接口的线程安全问题?说说你做过的优化措施
java·后端