TimeUtil 时间工具类——随时更新

POSIX条件变量原理与生产者消费者实战 条件变量是POSIX线程中实现线程间事件驱动协作的核心同步原语,其本质是基于互斥锁保护的原子挂起-唤醒机制,解决忙等待导致的CPU空转与竞态问题。原理上依赖futex在用户态完成轻量级等待/通知,仅在必要时陷入内核,兼顾性能与可移植性。技术价值在于提供标准化、跨平台一致的协作契约,支撑高并发场景下的确定性调度。典型应用场景包括生产者-消费者模型、任务队列空闲通知、配置热加载等需要精确事件触发的系统模块。本文深入剖析pthread_cond_wait与pthread_cond_signal的正确用法、spur 阅读详情
    public class TimeUtil {
    /**
     * 根据年月日计算年龄,birthTimeString "1994-11-14"
     * @param birthTimeString
     * @return
     */
    public static int getAgeByBirthTime(String birthTimeString) {
        String strs[] = birthTimeString.trim().split("-");
        int selectYear = Integer.parseInt(strs[0]);
        int selectMonth = Integer.parseInt(strs[1]);
        int selectDay = Integer.parseInt(strs[2]);

        Calendar cal = Calendar.getInstance();
        int yearNow = cal.get(Calendar.YEAR);
        int monthNow = cal.get(Calendar.MONTH) + 1;
        int dayNow = cal.get(Calendar.DATE);

        int yearMinus = yearNow - selectYear;
        int monthMinus = monthNow - selectMonth;
        int dayMinus = dayNow - selectDay;

        int age = yearMinus;
        if (yearMinus < 0) {
            age = 0;
        } else if (yearMinus == 0) {
            if (monthMinus < 0) {
                age = 0;
            } else if (monthMinus == 0) {
                if (dayMinus < 0) {
                    age = 0;
                } else if (dayMinus >= 0) {
                    age = 1;
                }
            } else if (monthMinus > 0) {
                age = 1;
            }
        } else if (yearMinus > 0) {
            if (monthMinus < 0) {

            } else if (monthMinus == 0) {
                if (dayMinus < 0) {

                } else if (dayMinus >= 0) {
                    age = age + 1;
                }
            } else if (monthMinus > 0) {
                age = age + 1;
            }
        }
        return age;
    }

    /**
     * 根据时间戳计算年龄
     * @param birthTime
     * @return
     */
    public static int getAgeByBirthTime(long birthTime) {
        Date date = new Date(birthTime * 1000l);
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
        String birthTimeString = format.format(date);
        return getAgeByBirthTime(birthTimeString);
    }

    /**
     * 字符串转 Date类型
     * @param stringTime 2000-01-01 06:00:00
     * @return
     */
    public static Date stringToDate(String stringTime) {
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        try {
            return simpleDateFormat.parse(stringTime);
        } catch (ParseException e) {
            e.printStackTrace();
            return null;
        }
    }

    /**
     * 获取当前时间一周后时间
     * @return
     */
    public static Date getDateOfAWeekLate() {
        Calendar curr = Calendar.getInstance();
        curr.set(Calendar.DAY_OF_MONTH, curr.get(Calendar.DAY_OF_MONTH) + 7);
        Date date = curr.getTime();
        return date;
    }

    /**
     * 获取当前时间一月后时间
     * @return
     */
    public static Date getDateOfAMonthLate() {
        Calendar curr = Calendar.getInstance();
        curr.set(Calendar.MONTH, curr.get(Calendar.MONTH) + 1);
        Date date = curr.getTime();
        return date;
    }

    /**
     * 获取当前时间一年后时间
     * @return
     */
    public static Date getDateOfAyearLate() {
        Calendar curr = Calendar.getInstance()
        curr.set(Calendar.YEAR, curr.get(Calendar.YEAR) + 1);
        Date date = curr.getTime();
        return date;
    }

	/**
     * 获取当天开始时间
     * @return
     */
    public static Date todayZero() {
        long current = System.currentTimeMillis();    //当前时间毫秒数
        long zero = current/(1000*3600*24)*(1000*3600*24) - TimeZone.getDefault().getRawOffset();  //今天零点零分零秒的毫秒数
        Date date = new Date(zero);
        return date;
    }

    /**
     * 获取当天结束时间
     * @return
     */
    public static Date todayEnd() {
        long current = System.currentTimeMillis();    //当前时间毫秒数
        long zero = current/(1000*3600*24)*(1000*3600*24) - TimeZone.getDefault().getRawOffset();  //今天零点零分零秒的毫秒数
        long end = zero + 24*60*60*1000-1;  //今天23点59分59秒的毫秒数
        Date date = new Date(end);
        return date;
    }
Unity热更新实战:基于xLua的Lua集成架构与性能优化指南 热更新是移动端游戏开发中的核心技术,它允许开发者在无需重新发布应用的情况下修复Bug或更新内容。其原理是通过在运行时动态加载和执行脚本代码,绕过平台审核流程。在Unity引擎中,Lua因其轻量级、高效和易于嵌入的特性,成为实现热更新的主流方案。通过C#与Lua虚拟机的双向通信桥梁,开发者可以将核心游戏逻辑脚本化,从而提升项目的可维护性和迭代效率。在应用场景上,Lua热更新广泛应用于需要频繁更新活动内容的移动游戏、大型MMO游戏的资源热更,以及需要快速响应线上问题的项目。本文聚焦于Unity与Lua的深度集成 阅读详情

相关推荐

DateTimeUtil 日期类型互相转换工具类

日期类型String,int ,Date,Calendar 年 月 日 时 分 秒格式相互转换

java中parseint函数_java中parseint函数

使用java中的parseInt()方法,怎么返回一个整数?1. int是java的基本数据类型,"int n"表示定义了一个int 型的变量n; 2. int n = Integer.parseInt(args[0]) 表示给定义的变量n 赋予一个初值为"Integer.parseInt(args[0])"; 3. Integer.parseInt(args[0])中,Integer是java中...

weixin_36050671的博客 4356

环境配置 |Jupyter lab/Jupyter Notebook 安装与设置

ipynb使用Jupyterlab/Jupyter Notebook 来编写程序时的文件,在使用时,可以现转换为标准的.py的python文件。

weixin_44649780的博客 5773

Python 边做边学 8.6 工具类--时间工具(TimeUtil)

前文说过,我们将时间转成时间戳存到数据库里,那就把处理时间的操作抽象一下,处理成工具; 1. 获取指定时间的时间戳; 2. 将时间戳转换成人可识别的格式(指定格式); 3. 将字符串时间(指定格式)转换成时间戳;

lufaxinT 1721

STM32F407 CanOpen主机实战:对象字典配置与多电机CIA402协议驱动详解

本文详细介绍了基于STM32F407的CanOpen主机开发实战,重点解析了对象字典的配置流程与多电机CIA402协议驱动方法。通过使用objdictedit工具配置SDO和PDO参数,并整合CanFestival协议栈,实现了对多个伺服电机的稳定同步控制。文章提供了从硬件连接到代码调试的完整指南,帮助开发者快速掌握工业现场的多轴运动控制技术。

plant的博客 530

Matlab实战:3种雷达间歇采样干扰的仿真与识别(附完整代码)

本文通过Matlab实战,详细仿真了雷达有源间歇采样干扰的三种核心样式:直接转发、重复转发和循环转发干扰。文章提供了完整的代码实现,并深入探讨了基于时频分析和循环平稳分析的特征提取与识别方法,为雷达抗干扰技术的学习与实践提供了清晰的工程实现路径。

weixin_29053695的博客 364

IOS 获取手机系统时间

在iOS开发过程中,难免会需要获取手机系统时间,比如:获取手机系统时间(年、月、日、时、分、秒、毫秒等等)需求。 获取手机系统时间相对并不难实现,其获取方式通过开发库所提供的NSDate、NSCalendar等类似于Android中的Date、Calendar等时间类。 TimeUtil.h #import <UIKit/UIKit.h> @class TimeUtil; /** * 获取时间工具类 **/ @interface TimeUtil : NSObject /**

KingToAce 1499

达梦--利用存储过程与定时任务实现数据自动迁移

本文详细介绍了在达梦数据库中如何结合存储过程与定时任务实现数据自动迁移。通过一个电商订单归档的实战案例,阐述了从设计表结构、编写具备异常处理和幂等性的存储过程,到配置DBMS_SCHEDULER定时任务的全流程。该方法能有效替代手动脚本,确保数据同步任务的稳定、准确与自动化执行,适用于报表准备、数据备份等多种场景。

weixin_29261711的博客 430

TimeUtil工具类

Emm……这个工具类很强大,做保留…… import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.List; public c...

monica1_1的博客 1534

基于PLC的冲压件自动生产线电气系统设计【附数据】

考虑到生产线的高效运行和维护简便性,选择了三菱FX系列的可编程逻辑控制器(PLC)作为核心控制单元,该型号的PLC因其高可靠性和强大的功能集,在工业自动化领域有着广泛的应用。最后,在完成初步的软件开发后,进行了多轮次的模拟测试和现场调试,逐步修正了存在的问题,最终达到了预期的功能要求。例如,对于进料环节,选用了光电传感器以精确检测物料的位置;此外,为了适应不同尺寸的工件加工需求,还特别设计了一套可调节的夹具系统,不仅提高了生产线的灵活性,同时也降低了更换模具的成本。✅ 感恩科研路上每一位志同道合的伙伴!

lagougongzuoshi的博客 1292

uniapp - 如何跟内嵌 web-view 组件内的网页交互,与 web-view 内嵌网页进行双向通信(uniapp 与 webview 网页之间的 “相互“ 传值)提供详细的示例代码及解决方案

uni-app如何实现在H5环境中与web-view中的网页交互通讯uniappuni-app 与 web-view内嵌网页 双向通信 如何跟内嵌web-view交互uniappAPP与webview子页面交互uniappAPP与webview子页面交互关于uni-app 使用 web-view 页面之间互相跳转、通信等问题uniapp的web-view嵌入网页,网页与uniapp通信webview如何与uniapp写的H5页面交互嵌套webview调用uniapp各种API组件实现H5和app通讯和交互

✅ 精选推荐文章 1万+

日期转换工具类JodaTimeUtil

引入依赖包 &lt;dependency&gt; &lt;groupId&gt;joda-time&lt;/groupId&gt; &lt;artifactId&gt;joda-time&lt;/artifactId&gt; &lt;version&gt;2.3&lt;/version&gt; &lt;/dependency&gt;

云淡风轻的专栏 1645

《ESP32单片机基础入门》第2章:开发环境搭建

【代码】《ESP32单片机基础入门》第2章:开发环境搭建。

2301_79143213的博客 582

JDK21中是用不了TimeUtil

当前的环境是windows11、idea2021.1.3、JDK21。

qq_53701704的博客 4141

Vivado ILA抓DDR信号(各种IO信号:差分、ISERDES、IOBUFDS等)

Vivado ILA抓DDR信号(各种IO信号:差分、ISERDES、IOBUFDS等)

千歌叹尽执夏的博客 1100

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

TimeUtil

package com.mx.operationcenter.webframework.web.util; import lombok.SneakyThrows; import lombok.experimental.UtilityClass; import org.apache.commons.lang3.StringUtils; import java.text.SimpleDateFor...

qq_26988531的博客 184

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

时间工具类

关于时间的常用工具类 TimeUtil.java

qq_49417441的博客 690

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

android timeutil,android.util.AndroidRuntimeException:

我收到此android.util.AndroidRuntimeException: requestFeature() must be called before adding content错误。如下面的代码所示,该requestWindowFeature(Window.FEATURE_NO_TITLE);行位于代码行之前setContentView(R.layout.mainmenu);。在我的...

weixin_36177953的博客 398

Android之根据时区获取当前时间

*** @Description :根据时区获取当地时间并格式化*/@JvmStatic//通过时区的id获得当时的时间): String?"0${month1${month1} else {"" + month"0day} else {"" + day"0hour} else {"" + hour"0minute} else {"0sec} else {"" + sec":" + sec1如果需要像正常时间一样走动,那就需要开个定时器一秒调用一次方法、

叶已初秋的博客 1069

盘点Hutool6.0中新增的那些方法(上)

引言在前面《使用Hutool要注意了!升级到6.0后你调用的所有方法都将报错》一文中我发现Hutool从5.0升级到6.0后有很多的不兼容,所有的包名都改了,也盘点了很多不兼容的方法,接下几篇文章中我将盘点Hutool6.0里新增加的方法。二、MapUtil2.1 MapUtil.ofKvs()作用: 快速构建出HashM...

weixin_42499919的博客 213

高精度时间戳优化方案解析

自适应:根据实际 QPS 动态启停高精度时间缓存;低侵入:对外 API 与完全一致;可观测:通过RecordLog输出状态切换日志,便于排查;资源友好:低负载时不占用额外 CPU,解决 Issue #1702 的“空转 CPU”问题;滑动窗口统计:精准计算 QPS,避免瞬时抖动误判。

m0_37607945的博客 670

Android快速开发工具集合——YUtils,OMG,学它

校验手机号 String MD5(String data) MD5加密 void copyToClipboard(String text) 复制文本到粘贴板 View Foreground(View view, int color, int start, int end) 字体高亮(TextView、EditText、Button)like this —》 YUtils.Foreground(mEditText, Color.RED,1,2); void showSoftKeyboard(Vi

m0_66264569的博客 276

Unity计时器

/*** * * Title: MXFramework * 主题: 计时器 * Description: * 功能:计时 * * Date: 2019 * Version: v1.3.0版本 * Modify Recoder: * */ using UnityEngine; name...

a451319296的博客 465

spring连接mysql高版本

1.数据库驱动改为 com.mysql.cj.jdbc.Driver 2.数据库时间存在bug serverTimezone=GMT,useSSL=false 3.版本号修改 &lt;dependency&gt; &lt;groupId&gt;mysql&lt;/groupId&gt; &lt;artifactId&gt;mysql-connector-java&lt;/a...

u012690487的博客 581

biliTickerBuy智能抢票工具:3步配置实现B站会员购自动化购票

还在为B站热门演唱会门票秒光而烦恼吗?biliTickerBuy是一款开源免费的B站会员购辅助工具,专为二次元爱好者设计的智能抢票解决方案。这款Python开发的B站抢票神器通过毫秒级响应和智能重试机制,让普通用户也能轻松实现自动化购票,告别手动抢票的焦虑与失败。无论你是技术新手还是资深开发者,都能在5分钟内完成配置,开启高效抢票之旅。 ## 项目定位与价值主张:重新定义B站购票体验 bili

gitblog_00010的博客 232

终极指南:如何用biliTickerBuy轻松搞定B站会员购抢票难题

作为一名B站会员购用户,你是否曾经为了抢到心仪的演唱会门票或限量周边而熬夜等待,却在开售瞬间因手速不够快而错失良机?biliTickerBuy正是为解决这一痛点而生的开源免费工具,它通过智能自动化技术帮助你在激烈的抢票竞争中脱颖而出。 ## 🎯 为什么你需要这个B站抢票神器? 在B站会员购的抢票场景中,人工操作面临三大核心挑战: 1. **时间精度问题**:手动操作无法实现毫秒级的时间同步

gitblog_00680的博客 744
上一篇: ActiveMQ消息队列基本实现
下一篇: Java调用https接口
GK_hello
博客等级 码龄8年 6粉丝 18原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值