Java时间工具类(获取上个月、获取月份1月1号时间戳、获取月份最后一天时间戳...)_new date() 转换为上月第一天时间戳-程序员宅基地

技术标签: JAVA  时间  日期时间工具  日期  编程语言  

在开发中我们经常还会用到日期时间,以下是一个日期时间工具类,包含:

  • 获取每月月初时间戳
  • 获取每月15号时间戳
  • 获取每月月末时间戳
  • 获取当前被格式化后的日期
  • 从这些方法中你可以改写出你需要的方法

    PS:不足之处请指出,共同学习、共同进步 ! 
package *.*.utils;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class WsDateUtil {

    static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    /**
     * 获取指定时间戳所在月份开始的时间戳/秒
     * @param dateTimeMillis 指定时间戳/毫秒
     * @return
     */
    public static Long getMonthBegin(Long dateTimeMillis) {
        Calendar c = Calendar.getInstance();
        c.setTime(new Date(dateTimeMillis));

        //设置为1号,当前日期既为本月第一天
        c.set(Calendar.DAY_OF_MONTH, 1);
        //将小时至0
        c.set(Calendar.HOUR_OF_DAY, 0);
        //将分钟至0
        c.set(Calendar.MINUTE, 0);
        //将秒至0
        c.set(Calendar.SECOND,0);
        //将毫秒至0
        c.set(Calendar.MILLISECOND, 0);
        // 获取本月第一天的时间戳
        return c.getTimeInMillis() / 1000;
    }

    /**
     * 获取指定时间戳所在月份15号的时间戳/秒
     * @param dateTimeMillis 指定时间戳/毫秒
     * @return
     */
    public static Long getMonthMiddle(Long dateTimeMillis) {
        Calendar c = Calendar.getInstance();
        c.setTime(new Date(dateTimeMillis));

        //设置为当月最后一天
        c.set(Calendar.DAY_OF_MONTH, 15);
        //将小时至23
        c.set(Calendar.HOUR_OF_DAY, 23);
        //将分钟至59
        c.set(Calendar.MINUTE, 59);
        //将秒至59
        c.set(Calendar.SECOND,59);
        //将毫秒至999
        c.set(Calendar.MILLISECOND, 999);
        // 获取本月最后一天的时间戳
        return c.getTimeInMillis() / 1000;
    }

    /**
     * 获取指定时间戳所在月份结束的时间戳/秒
     * @param dateTimeMillis 指定时间戳/毫秒
     * @return
     */
    public static Long getMonthEnd(Long dateTimeMillis) {
        Calendar c = Calendar.getInstance();
        c.setTime(new Date(dateTimeMillis));

        //设置为当月最后一天
        c.set(Calendar.DAY_OF_MONTH, c.getActualMaximum(Calendar.DAY_OF_MONTH));
        //将小时至23
        c.set(Calendar.HOUR_OF_DAY, 23);
        //将分钟至59
        c.set(Calendar.MINUTE, 59);
        //将秒至59
        c.set(Calendar.SECOND,59);
        //将毫秒至999
        c.set(Calendar.MILLISECOND, 999);
        // 获取本月最后一天的时间戳
        return c.getTimeInMillis() / 1000;
    }

    /**
     * 获取上一个月1号0点0分0秒的时间戳
     * @param dateTimeMillis
     * @return
     */
    public static Long getPreviousMonthBegin(Long dateTimeMillis){
        Date date = new Date(dateTimeMillis);
        date.setDate(1);
        date.setHours(0);
        date.setMinutes(0);
        date.setSeconds(0);
        if(date.getMonth() - 1 <= 0){
            date.setYear(date.getYear() - 1);
            date.setMonth(12);
        }else {
            date.setMonth(date.getMonth() - 1);
        }
        return date.getTime() / 1000;
    }

    /**
     * 获取当前日期
     * @return
     */
    public static String getCurrentDate() {
        Date date = new Date();
        return sdf.format(date);
    }
}

最后给各位看官来波福利!

阿里云服务器代金券和折扣免费领:https://promotion.aliyun.com/ntms/yunparter/invite.html?userCode=ypbt9nme

性能级主机2-5折:https://promotion.aliyun.com/ntms/act/enterprise-discount.html?userCode=ypbt9nme

新用户云通讯专享8折:https://www.aliyun.com/acts/alicomcloud/new-discount?userCode=ypbt9nme

新老用户云主机低4折专项地址:https://promotion.aliyun.com/ntms/act/qwbk.html?userCode=ypbt9nme

680元即可注册商标专项地址:https://tm.aliyun.com/?userCode=ypbt9nme

17元/月云主机:https://promotion.aliyun.com/ntms/act/qwbk.html?spm=5176.11533447.1097531.13.22805cfaiTv7SN&userCode=ypbt9nme

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/s1078229131/article/details/96102923

智能推荐

数据分析与挖掘中常用Python库的介绍与实践案例_python数据分析与数据挖掘案例-程序员宅基地

文章浏览阅读1.7k次。数据分析与挖掘中常用Python库的介绍与实践案例一、Python介绍 现在python一词对我们来说并不陌生,尤其是在学术圈,它的影响力远超其它任何一种编程语言, 作为一门简单易学且功能强大的编程语言,它拥有丰富的第三方库,在许多方面都有着广泛的应用,如..._python数据分析与数据挖掘案例

SIP协议结构——SIP学习笔记(三)-程序员宅基地

文章浏览阅读1.2k次。SIP是一个分层协议,每层之间松耦合。SIP元素都是逻辑元素,而非物理元素。物理实现可以作为不同逻辑元素,甚至是基于事务的。第一层:即SIP的最低层是语法和编码。其编码指定使用巴科斯范式(BNF)。第二层:传输层。它定义在网络上客户端如何发送请求和接收响应,服务器如何接收请求和发送响应。所有的SIP元素都包含传输层。第三层:事务层。事务层处理应用层转播、响应与请求的匹配、应用层超时。用..._sip协议结构

利用Spring Portlet MVC 开发一个简单的Portlet的全部过程_spring-webmvc-portlet作用-程序员宅基地

文章浏览阅读1.2w次。 1.创建web.xmlcontextConfigLocation /WEB-INF/context/application-context.xml _spring-webmvc-portlet作用

计算机毕业设计(附源码)python重庆工商大学失物招领系统_重庆工商大学计算python及答案-程序员宅基地

文章浏览阅读449次。项目运行环境配置:Pychram社区版+ python3.7.7 + Mysql5.7 + HBuilderX+list pip+Navicat11+Django+nodejs。项目技术:django + python+ Vue 等等组成,B/S模式 +pychram管理等等。环境需要1.运行环境:最好是python3.7.7,我们在这个版本上开发的。其他版本理论上也可以。2.pycharm环境:pycharm都可以。推荐pycharm社区版;_重庆工商大学计算python及答案

鸿蒙系统天气主题,墨迹天气携手鸿蒙系统 以精细化气象服务助力全场景生态建设...-程序员宅基地

文章浏览阅读370次。在近日结束的华为开发者大会2020上,墨迹天气凭借精细化专业气象服务能力赋能华为全场景应用生态的优势,荣获华为应用市场2020鸿蒙系统应用创新合作伙伴殊荣。在此次开发者大会上,华为正式发布的鸿蒙HarmonyOS 2.0系统,是全球首个且由华为自主研发的真正为全场景时代打造的分布式操作系统,具有划时代的意义。基于华为鸿蒙2.0,人、设备、场景不再是孤立的存在,而是有机地联系在一起,达到以人为中心,..._鸿蒙怎么改天气图标

iOS中截取屏幕中局部图片_ios 将屏幕指定区域绘制成照片-程序员宅基地

文章浏览阅读766次。-(void)screenShotRect:(CGRect)aRect //arect 想要截图的区域{ UIGraphicsBeginImageContextWithOptions(CGSizeMake(640, 960), YES, 0); [self.view.layer renderInContext:UIGraphicsGetCurrentContext()]; _ios 将屏幕指定区域绘制成照片

随便推点

NBU Client For Linux 安装-程序员宅基地

文章浏览阅读717次。1.1 NBU Client For Linux安装1、 客户端添加NBU SERVER HOSTS解析[root@client]# cat /etc/hosts# Do not remove the following line, or various programs# that require network functionality will fail.127..._nbu client

剑指offer-二叉树搜索与双向链表_剑指offer36二叉树与双向链表-程序员宅基地

文章浏览阅读432次。题目:输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。解题思路:二叉树的中序遍历,左、根、右;因为二叉搜索树的中序遍历就是递增排列的,所以只要在中序遍历时将每个结点放入vector中,再分别为每个结点的左右指针赋值即可。 采用中序遍历: 修改中序遍历,在其中加入一个前驱结点 遍历左子树 当前结点指向左指针指向前驱结点 前驱结_剑指offer36二叉树与双向链表

基于深度学习模型的花卉图像分类代码_实战 | 基于深度学习模型VGG的图像识别(附代码)...-程序员宅基地

文章浏览阅读1.7k次。本文演示了如何使用百度公司的PaddlePaddle实现基于深度学习模型VGG的图像识别。准备工作VGG简介牛津大学VGG(Visual Geometry Group)组在2014年ILSVRC提出的模型被称作VGG模型 。该模型相比以往模型进一步加宽和加深了网络结构,它的核心是五组卷积操作,每两组之间做Max-Pooling空间降维。同一组内采用多次连续的3X3卷积,卷积核的数目由较浅组的64增..._paddlepaddle鲜花预测vgg

Android Studio下载及安装和Gradle的配置(非常详细)从零基础入门到精通,看完这一篇就够了-程序员宅基地

文章浏览阅读3.2w次,点赞73次,收藏449次。修改:gradle-wrapper.properties文件,如果想要指定版本的gradle,修改distributionUrl中的版本,只改后面的版本就行,防止自动下载慢,可以把提前下载的好的zip包,放到(C:\Users\Administrator.gradle\wrapper\dists\gradle-7.x.x-bin\6a41zxkdtcxs8rphpq6y0069z目录下,注意不要解压)。涉及范围主要集中在 信息收集、Android黑客工具、自动化工具、网络钓鱼等,感兴趣的同学不容错过。_android studio下载

传统算法 - 霍夫圆检测原理-程序员宅基地

文章浏览阅读5.7k次。以下转载自 https://blog.csdn.net/dcrmg/article/details/52506538霍夫圆变换的基本思路是认为图像上每一个非零像素点都有可能是一个潜在的圆上的一点,跟霍夫线变换一样,也是通过投票,生成累积坐标平面,设置一个累积权重来定位圆。在笛卡尔坐标系中圆的方程为:其中(a,b)是圆心,r是半径,也可以表述为:即所以在abr组成的三维坐标系中,一个..._霍夫圆检测原理

QT中出现main.error错误的解决方法,_qtbase/src/tools/syncqt/main.cpp:25:10: fatal erro-程序员宅基地

文章浏览阅读2.8k次。问题:最近在虚拟机的Linux上安装QT,编译一个在其它地方没有问题的程序的时候出现了main.error的问题,捣鼓了好久,现在终于是能够用了,现将解决过程记录如下,如果有遇到相同问题的朋友不妨可以试试看解决方法:在网上查了一些资料,说的都可能是GCC的问题我的系统上的GCC有两个版本,系统自带的4.4.2是装在目录/usr/bin下,而我新装的支持C++11的版_qtbase/src/tools/syncqt/main.cpp:25:10: fatal erro