时间格式转换LongToString

2023-10-30

import java.util.Calendar;
import java.util.Date;

import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.math.NumberUtils;
import org.joda.time.DateTime;

public class DateUtils {
	/*
	 * 获取当前系统时间 System.currentTimeMillis(); return Long 默认转换格式
	 */
	public final static String DATE_FORMAT_DEFAULT = "yyyy-MM-dd";
	public final static String DATE_FORMAT_TIME = "yyyy-MM-dd HH:mm";

	/* 将Long类型转换为yyyy-MM-dd */
	public static String longToString(long time) {
		return (longToString(time, DATE_FORMAT_DEFAULT));
	}

	/* 将Long类型转换为指定格式时间 默认yyyy-MM-dd */
	public static String longToString(long time, String format) {
		if (StringUtils.isBlank(format)) {
			format = DATE_FORMAT_DEFAULT;
		}
		DateTime dTime = new DateTime(time);
		return (dTime.toString(format));
	}

	/* 获取今天的的开始时间 return Long 2016-02-03 00:00:00 */
	public static long getTodayStartTime() {
		DateTime dt = DateTime.now();
		return (dt.withTimeAtStartOfDay().getMillis());
	}

	/* 当前时间所在日期的开始时间 */
	public static long getDayStartTime(long timestamp) {
		DateTime dt = new DateTime(timestamp);
		return (dt.withTimeAtStartOfDay().getMillis());
	}

	/* 当前时间所在周一的开始时间 */
	public static long getWeekStartTime(long timestamp) {
		Calendar c = Calendar.getInstance();
		c.setTimeInMillis(getDayStartTime(timestamp));

		int day_of_week = c.get(Calendar.DAY_OF_WEEK) - 1;
		if (day_of_week == 0) {
			day_of_week = 7;
		}
		c.add(Calendar.DATE, -day_of_week + 1);
		return (c.getTimeInMillis());
	}

	/* 当前时间所在的第几周 */
	public static int getWeekOfYear(long timestamp) {
		DateTime dt = new DateTime(timestamp);
		return (dt.getWeekOfWeekyear());
	}

	/* 当前时间所在的年 */
	public static int getYear(long timestamp) {
		DateTime dt = new DateTime(timestamp);
		return (dt.getYear());
	}

	/* 当前时间所在月 */
	public static String getMonth(Long time) {
		DateTime dTime = new DateTime(time);
		return (String.valueOf(dTime.getMonthOfYear()));
	}

	/* 当前时间所在日 */
	public static String getDay(Long time) {
		DateTime dTime = new DateTime(time);
		return (String.valueOf(dTime.getDayOfMonth()));
	}

	/* 当前时间所在时分 15:47 */
	public static String getTime(Long time) {
		DateTime dTime = new DateTime(time);
		int hour = dTime.getHourOfDay();
		int minute = dTime.getMinuteOfHour();
		return (String.format("%d:%d", hour, minute));
	}

	/* 返回当月1日的Long类型 */
	public static long getCurrentMonthToLong() {
		Calendar cal = Calendar.getInstance();
		Date date = new Date(System.currentTimeMillis());
		cal.setTime(date);
		cal.set(Calendar.HOUR_OF_DAY, 0);
		cal.set(Calendar.SECOND, 0);
		cal.set(Calendar.MINUTE, 0);
		cal.set(Calendar.MILLISECOND, 0);
		cal.set(Calendar.DAY_OF_MONTH, 1);
		return (cal.getTimeInMillis());
	}

	/* 返回给定时间当月1日的Long类型 */
	public static long getMonthBeginToLong(Date date) {
		Calendar cal = Calendar.getInstance();
		cal.setTime(date);
		cal.set(Calendar.HOUR_OF_DAY, 0);
		cal.set(Calendar.SECOND, 0);
		cal.set(Calendar.MINUTE, 0);
		cal.set(Calendar.MILLISECOND, 0);
		cal.set(Calendar.DAY_OF_MONTH, 1);
		return (cal.getTimeInMillis());
	}

	/* 参数:2016/02/25 返回:2016/02/01的Long类型 */
	public static long getMonthBeginToLong(String str) {
		Calendar cal = Calendar.getInstance();
		Date date = new Date(parseDateStringToLong(str));
		cal.setTime(date);
		cal.set(Calendar.HOUR_OF_DAY, 0);
		cal.set(Calendar.SECOND, 0);
		cal.set(Calendar.MINUTE, 0);
		cal.set(Calendar.MILLISECOND, 0);
		cal.set(Calendar.DAY_OF_MONTH, 1);
		return (cal.getTimeInMillis());
	}

	/* 日期字符串转为long 日期字符串格式 2015-01-01 2015-1-1 2015/1/1 2015/01/01 20150101 */
	public static long parseDateStringToLong(String dateStr) {
		if (null == dateStr || dateStr.trim().length() < 1) {
			return (0L);
		}
		int year = 0;
		int month = 0;
		int day = 0;
		if (dateStr.contains("-")) {
			String[] a = dateStr.split("-");
			year = NumberUtils.toInt(a[0]);
			month = NumberUtils.toInt(a[1]);
			day = NumberUtils.toInt(a[2]);
		} else if (dateStr.contains("/")) {
			String[] a = dateStr.split("/");
			year = NumberUtils.toInt(a[0]);
			month = NumberUtils.toInt(a[1]);
			day = NumberUtils.toInt(a[2]);
		} else {
			if (dateStr.length() == 8) {
				year = NumberUtils.toInt(dateStr.substring(0, 4));
				month = NumberUtils.toInt(dateStr.substring(4, 6));
				day = NumberUtils.toInt(dateStr.substring(6, 8));
			} else {
				return (Long.MIN_VALUE);
			}
		}
		Calendar cal = Calendar.getInstance();
		cal.set(year, month - 1, day, 0, 0, 0);
		cal.set(Calendar.MILLISECOND, 0);
		return (cal.getTime().getTime());
	}
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

时间格式转换LongToString 的相关文章

  • 【策略工厂模式】使用策略工厂模式解决if else过多的问题

    目录 一 为什么要用策略工厂解决问题 1 1 使用策略模式之前 1 2使用策略模式之后 二 怎么用策略工厂模式解决问题 2 1 创建枚举类 2 2 创建抽象类 2 3 创建工厂类 2 4 编写子类型 三 意义 一 为什么要用策略工厂解决问题
  • Tensorflow加载预训练模型和保存模型(ckpt文件)以及迁移学习finetuning

    转载自 https blog csdn net huachao1001 article details 78501928 使用tensorflow过程中 训练结束后我们需要用到模型文件 有时候 我们可能也需要用到别人训练好的模型 并在这个基
  • 快速理解图神经网络(GCN)

    网上对图卷积神经网络 Graph Convolutional Networks 的介绍大都说的云里雾里 让人看了不甚明白 无意中找到了篇很好的文章 对图神经网络中 f H i A
  • 前端下载二进制流文件

    前端下载文件有两种方法 第一种 后台直接返回下载流格式的文件地址 前端用a标签新开窗口或者window open 下载即可 另外一种 后台返回二进制流文件内容 前端通过blob进行转化后再下载 具体代码 async downloadFn t
  • pyautogui.locateOnScreen()扫描屏幕返回none问题

    我们有一张这样的图片 我们想用pyautgui模块的locateOnScreen 定位该图片在屏幕对应的位置 发现屏幕中明明存在改图片 但是扫描失败 找不到该图片 如下两张图 我们给locateOnScreen 括号里添加confidenc
  • Linux——主函数的三个参数,printf方法的隐藏缓冲区

    主函数的三个参数 在windows下 c语言的主函数默认有两个参数 很多人会惊奇 这是什么 好像从没有听说过 我们在写C代码的时候都是习惯性的新建空项目然后自己添加 cpp文件 但是可能有部分人习惯直接新建控制台程序 然后可能就会看到这么一
  • 对你的屁股好一点!

    作为软件开发人员 买一把上乘的电脑椅也许是你能做的最明智的投资之一 事实上 在过去几年看过各种各样的椅子之后 我得出了一个结论 如果你想买一把上乘的椅子 你要花的钱不会少于500美元 如果你在座椅上花的钱没那么多 除非你正在经历那场跨世纪互
  • 技术博客写作「个人经验分享」

    技术博客写作 个人经验分享 仔细想来 从19年我刚开始试着技术写作算起 已经过去了好几年时间 刚好趁着这次的 赠送奖牌活动 奖牌很好看 我很想要hhh 来分享一下我关于技术博客写作的一些个人经验 文章目录 技术博客写作 个人经验分享 Wha
  • 新装机电脑网速特别慢

    老主机最近有些问题 我一直没能解决 也用了5年了 索性出给闲鱼二道贩子 又自己新配置了一台主机 具体表现为 主机插网线后 跟之前主机比 浏览网页或者下载资源速度特别慢 打开百度浏览器都要转上一会 不管下载什么资源 下载速度最快只有100 2
  • Redis面试题整理

    1 什么是Redis以及Redis的优缺点 Redis是一个非关系型数据库 NO SQL 类似于Java中Map 其中key为字符串类型 Redis支持的Value类型有5种 字符串 String 列表 List 集合 set 散列表 Ha
  • 【Python技巧】python字符串编码全是Unicode,Unicode压缩到utf-8,encode和decode,bytes

    一 Python3字符串全是Unicode 这意味着 只要用python3 x 无论我们的程序以那种语言开发 都可以在全球各国电脑上正常显示 python3 x中 把字符串变成了unicode 文件默认编码为utf 8 unicode 分为
  • Acwing 893. 集合-Nim游戏

    Mex运算 设S表示一个非负整数集合 定义mex S 为求出不属于集合S的最小非负整数的运算 即 mex S min x x属于自然数 且x不属于S SG函数 在有向图游戏中 对于每个节点x 设从x出发共有k条有向边 分别到达节点y1 y2
  • Linux文件恢复

    0 前言 用rm命令多了 难免会出现误删文件的情况 本人就在Ubuntu14 04中做项目时遇到该问题 本来想使用rm命令删除以14开头的文件 结果写成如下形式 导致文件被误删 rm 14 14 和 误增了一个空格 1 工具 ext3和ex
  • C语言程序设计基础OJ练习题(实验六一维数组)

    一 C语言实验 最值 Time Limit 1000 ms Memory Limit 65536 KiB Submit Statistic Problem Description 有一个长度为n的整数序列 其中最大值和最小值不会出现在序列的
  • 网站接入CDN显示不正常无法加载HTTPS样式表

    网站接入腾讯云内容分发网络CDN后 显示不正常 网站加载的CSS样式表HTTP协议 无法加载HTTPS 如何解决 解决方法 修改回源协议为HTTPS即可 腾讯云CDN网站HTTPS样式表无法载入的解决方法 网站接入腾讯云CDN后 网站显示不
  • IOCTL命令号

    IOXX是驱动IOCTL命令号的宏转换定义 用于对命令进行分类 防止不同类驱动程序具有相同命令号 导至误打开驱动程序而驱动程序功能调用被误操作 命令码的组织是有一些讲究的 因为我们一定要做到命令和设备是一一对应的 这样才不会将正确的命令发给
  • 记一次生产环境tomcat线程数打满情况分析

    前言 旨在分享工作中遇到的各种问题及解决思路与方案 与大家一起学习 学无止境 加油 Just do it 问题描述 运行环境描述 tomcat 8 5 单节点 该应用集群20个节点 avg tps 250 max tps 350 tomca
  • HDFS客户端写流程

    HDFS客户端写流程 1 创建文件 首先调用DistributedFileSystem creat 创建一个空的HDFS文件 然后这个方法在底层会通过调用ClientProtocol create 方法通知Namenode执行对应的操作 N
  • Flutter开发之——单组件布局容器-FittedBox

    一 概述 当子组件的宽高比和父组件的宽高比不一样时 我们等比拉伸或者填充父组件 这时我们可以使用FittedBox 二 FittedBox 2 1 构造方法 const FittedBox Key key this fit BoxFit c
  • 区块链学习——区块链的技术栈

    摘要 我在区块链学习的上一篇博文 链接 区块链学习 区块链技术理念与工作流程中 简单介绍了区块链的技术理念以及工作流程 本文我将继续介绍区块链技术栈 我们知道 区块链本身只是一个数据的记录格式 就像们平时使用Excel表格 Word文档一样

随机推荐

  • Java #{}和${}区别

    Java 和 区别 Mybatis中使用 可以防止sql注入 表示一个占位符号 实现向PreparedStatement占位符中设置值 表示一个占位符 自动进行Java类型到JDBC类型的转换 因此 可以有效防止SQL注入 可以接收简单类型
  • 过程改进的关注点之项目管理过程

    从项目估算到项目策划 再到计划跟踪控制 包括风险的识别与管理 常见的改进点有哪些呢 基于我的咨询经验梳理如下 小类 关注点 估算方法 无论是采用经验法还是模型法 都要根据历史的估算偏差率评价估算方法的合理性 如果偏差率大 则应该识别改进点
  • MySQL高级篇_第09章_性能分析工具的使用

    1 数据库服务器的优化步骤 当我们遇到数据库调优问题的时候 该如何思考呢 这里把思考的流程整理成下面这张图 整个流程划分成了 观察 Show status 和 行动 Action 两个部分 字母 S 的部分代表观察 会使用相应的分析工具 字
  • WSL2 引起的 VirtualBox 启动问题

    罪魁祸首 https docs microsoft com zh cn windows wsl wsl2 install 尝试启用 WSL2 执行了 Enable WindowsOptionalFeature Online FeatureN
  • 9、数据类型

    1 布尔型布尔型的值只可以是常量 true 或者 false 初始化默认false 一个简单的例子 var b bool true 2 数字类型整型 int 和浮点型 float32 float64 Go 语言支持整型和浮点型数字 并且支持
  • 正则化- logistics回归

    正则化是一种常见的机器学习技术 它是在模型训练过程中为了防止过拟合而引入的一种约束方法 它通过在模型的损失函数中增加正则项来实现 正则项通常是模型参数的范数 L1 或 L2 范数 通过限制参数的大小来使得模型更加简单 从而减少过拟合的风险
  • pyinstaller 打包流程大体说明(linux)

    一 在文件中配置好 spec build sh start sh stop sh 文件后 后面的打包过程就很简单了 1 其中 spec文件是打包的流程 与pyinstaller有关 可以参考pyinstaller的spec文件编写规范 它能
  • SpringBoot 发布webservice接口,实现接口如何调用业务层代码

    如果直接按照业务层方式 在webservice实现是不可行的 Autowired无法自动注入 还会报空指针的错误 因为在webservice的自动注入不是在spring容器中找bean对象 所以按照service层方式是无法取得对象 所以我
  • OpenCL编程入门(一)

    OpenCL简介 开放计算语言 Open Computing Language OpenCL 是非盈利技术联盟Khronos Group管理的异构编程框架 该框架充分利用了CPU DSP FPGA GPU的计算能力 OpenCL支持多层次的
  • Java如何处理PermGen内存泄漏问题

    PermGen和内存泄漏问题 在Java早期版本中 永久代 PermGen 是Java虚拟机 JVM 中的一个内存区域 用于存储类的元数据 静态变量 常量等 PermGen的大小是固定的 如果PermGen空间不足 会抛出OutOfMemo
  • 舵机使用基础(SG90模拟舵机和MG90S数字舵机为例)(附驱动程序)

    工作环境 蓝色粗体字为特别注意内容 1 系统环境 SG90模拟舵机 MG90S数字舵机 12C5A60S2单片机 2 参考文献 很多不是航模或者机器人爱好者的同学可能舵机了解比较少 笔者也一样 只是单纯的单片机爱好者 只是有时候需要用舵机来
  • 【舰船数据集格式转换】AIR-SARShip-1.0数据集VOC转COCO

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 前言 一 sar舰船图像检测数据集 二 使用步骤 1 原始数据集 2 xml2json AIR SARShip 1 0 3 json文件 总结 前言 最近一直在做s
  • Qt Charts简介

    文章目录 一 图标类型Charts分类 1 折线图和样条曲线图 2 面积图和散点图 3 条形图 4 饼图 5 误差棒图 6 烛台图 7 极坐标图 二 坐标轴Axes类型分类 三 图例 四 图表的互动 五 图表样式主题 一 图标类型Chart
  • Linux软链接硬链接的区别

    ln是linux中又一个非常重要命令 它的功能是为某一个文件在另外一个位置建立一个同步的链接 当我们需要在不同的目录 用到相同的文件时 我们不需要在每一个需要的目录下都放一个必须相同的文件 我们只要在某个固定的目录 放上该文件 然后在 其它
  • vscode链接AutoDL,并使用xtfp7传输文件

    1 AutoDL简介 AutoDL是一个GPU租赁平台 便宜好用 点击下面的链接注册即可 学生邮箱认证有优惠 4090 3090显卡都有还有3060 3080 TITAN Xp等等 AutoDL 品质GPU租用平台 租GPU就上AutoDL
  • 深度图拼接

    度量变换 图像拼接 检测深度图 国科大图像处理实验 度量变换 图像拼接 检测深度图 国科大图像处理实验 Root dobby的博客 CSDN博客 问题描述 目录hw3下有立体视觉对应的两幅图像view1 png和view5 png 图像来源
  • 家用电脑可以用做服务器吗

    家用电脑的结构与服务器的结构是相同的 家用电脑是可以用来搭建服务器使用 但使用家用电脑做服务器在稳定性会比服务器差很多 1 家用电脑没有公网IP 网络运营商分配的IP重启路由之后是会变化 不固定 服务器运行是需要有固定IP让人连接访问 使用
  • Ngui 五种点击事件实现方式

    ngui作为unity界面插件之一中 无疑是最好用 使用最多的了从自学unity到现在界面一直使用它 由于它的持续更新 我在此不得不说 确实很为开发者作想 为什么这么讲呢 大概在去年吧 当时用的那个版本已经不记得了 反正就是有个需求 要实现
  • HTC相关开发所需SDK等工具都在这里了

    HTC相关开发所需SDK等工具都在这里了 转 OpenVR SDKhttps github com ValveSoftware openvr OpenVR SDK是由原本的SteamWorks SDK更新而来 新增对HTC VIVE开发者版
  • 时间格式转换LongToString

    import java util Calendar import java util Date import org apache commons lang3 StringUtils import org apache commons la