当前位置: 首页 > news >正文

运行时间(Java版本)—转换毫秒到时分秒日期

        第一种方式:

import java.util.Calendar;
import java.util.TimeZone;

public class Test {

	/**
	 * 将毫秒转换为年月日时分秒
	 * 
	 * @author GaoHuanjie
	 */
	public String getYearMonthDayHourMinuteSecond(long timeMillis) {
	    Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("GMT+8"));  
	    calendar.setTimeInMillis(timeMillis);
	    int year=calendar.get(Calendar.YEAR);
	    
	    int month=calendar.get(Calendar.MONTH) + 1;
	    String mToMonth=null;
	    if (String.valueOf(month).length()==1) {
	    	mToMonth="0"+month;
	    } else {
	    	mToMonth=String.valueOf(month);
	    }
	    
	    int day=calendar.get(Calendar.DAY_OF_MONTH);
	    String dToDay=null;
	    if (String.valueOf(day).length()==1) {
	    	dToDay="0"+day;
	    } else {
	    	dToDay=String.valueOf(day);
	    }
	    
	    int hour=calendar.get(Calendar.HOUR_OF_DAY);
	    String hToHour=null;
	    if (String.valueOf(hour).length()==1) {
	    	hToHour="0"+hour;
	    } else {
	    	hToHour=String.valueOf(hour);
	    }
	    
	    int minute=calendar.get(Calendar.MINUTE);
	    String mToMinute=null;
	    if (String.valueOf(minute).length()==1) {
	    	mToMinute="0"+minute;
	    } else {
	    	mToMinute=String.valueOf(minute);
	    }
	    
	    int second=calendar.get(Calendar.SECOND);
	    String sToSecond=null;
	    if (String.valueOf(second).length()==1) {
	    	sToSecond="0"+second;
	    } else {
	    	sToSecond=String.valueOf(second);
	    }
	    return  year+ "-" +mToMonth+ "-" +dToDay+ " "+hToHour+ ":" +mToMinute+ ":" +sToSecond; 		
	}

	public static void main(String[] args) {
		System.out.println(new Test().getYearMonthDayHourMinuteSecond(System.currentTimeMillis()));
	}
}

        另外一种方式:

public class Test {

	/**
	 * 将毫秒转换为年月日时分秒
	 * 
	 * @author GaoHuanjie
	 */
	public String getYearMonthDayHourMinuteSecond(long timeMillis) {
		int timezone = 8; // 时区
		long totalSeconds = timeMillis / 1000;
		totalSeconds += 60 * 60 * timezone;
		int second = (int) (totalSeconds % 60);// 秒
		long totalMinutes = totalSeconds / 60;
		int minute = (int) (totalMinutes % 60);// 分
		long totalHours = totalMinutes / 60;
		int hour = (int) (totalHours % 24);// 时
		int totalDays = (int) (totalHours / 24);
		int _year = 1970;
		int year = _year + totalDays / 366;
		int month = 1;
		int day = 1;
		int diffDays;
		boolean leapYear;
		while (true) {
			int diff = (year - _year) * 365;
			diff += (year - 1) / 4 - (_year - 1) / 4;
			diff -= ((year - 1) / 100 - (_year - 1) / 100);
			diff += (year - 1) / 400 - (_year - 1) / 400;
			diffDays = totalDays - diff;
			leapYear = (year % 4 == 0) && (year % 100 != 0) || (year % 400 == 0);
			if (!leapYear && diffDays < 365 || leapYear && diffDays < 366) {
				break;
			} else {
				year++;
			}
		}

		int[] monthDays;
		if (diffDays >= 59 && leapYear) {
			monthDays = new int[] { -1, 0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335 };
		} else {
			monthDays = new int[] { -1, 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334 };
		}
		for (int i = monthDays.length - 1; i >= 1; i--) {
			if (diffDays >= monthDays[i]) {
				month = i;
				day = diffDays - monthDays[i] + 1;
				break;
			}
		}
		return year + "-" + month + "-" + day + " " + hour + ":" + minute + ":" + second;
	}

	public static void main(String[] args) {
		System.out.println(new Test().getYearMonthDayHourMinuteSecond(System.currentTimeMillis()));
	}
}

版权声明:本文博客原创文章,博客,未经同意,不得转载。

相关文章:

  • hibernate_使用笔记
  • SharePoint 命令 安装、部署、回收、删除、更新 wsp包 (Solution)
  • Lisp-Stat 数据读取与绘图
  • 前后端分离了,然后呢?(转)
  • 向上取整和向下取整
  • oracle 抽取 对方大字段数据
  • Kubernetes初步
  • 谁是面向对象的设计霸主?(上)
  • Java 兑换ObjectC代码
  • [老老实实学WCF] 第三篇 在IIS中寄存服务
  • cocos2d 缓存池 对象的再利用
  • 部署DNS服务
  • Skype for Business Server 2015-13-IISARR-2-发布-1-OWA-ECP
  • AFNetworking 使用总结 (用法+JSON解析)
  • 【Nginx】磁盘文件写入飞地发
  • 「前端早读君006」移动开发必备:那些玩转H5的小技巧
  • Bytom交易说明(账户管理模式)
  • - C#编程大幅提高OUTLOOK的邮件搜索能力!
  • Django 博客开发教程 16 - 统计文章阅读量
  • GDB 调试 Mysql 实战(三)优先队列排序算法中的行记录长度统计是怎么来的(上)...
  • Java 最常见的 200+ 面试题:面试必备
  • magento 货币换算
  • Quartz初级教程
  • 从零开始的无人驾驶 1
  • 数据结构java版之冒泡排序及优化
  • 异常机制详解
  • kubernetes资源对象--ingress
  • # 手柄编程_北通阿修罗3动手评:一款兼具功能、操控性的电竞手柄
  • #git 撤消对文件的更改
  • #NOIP 2014#Day.2 T3 解方程
  • #QT(串口助手-界面)
  • #我与Java虚拟机的故事#连载19:等我技术变强了,我会去看你的 ​
  • (145)光线追踪距离场柔和阴影
  • (done) NLP “bag-of-words“ 方法 (带有二元分类和多元分类两个例子)词袋模型、BoW
  • (Git) gitignore基础使用
  • (LeetCode) T14. Longest Common Prefix
  • (附源码)spring boot建达集团公司平台 毕业设计 141538
  • (四)React组件、useState、组件样式
  • (算法二)滑动窗口
  • (已解决)什么是vue导航守卫
  • (转)为C# Windows服务添加安装程序
  • .gitignore文件设置了忽略但不生效
  • .mkp勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .NET MAUI学习笔记——2.构建第一个程序_初级篇
  • .net 托管代码与非托管代码
  • .Net 应用中使用dot trace进行性能诊断
  • .NET(C#) Internals: as a developer, .net framework in my eyes
  • .NET/C# 使窗口永不获得焦点
  • .net连接MySQL的方法
  • @zabbix数据库历史与趋势数据占用优化(mysql存储查询)
  • [ IOS ] iOS-控制器View的创建和生命周期
  • [ 网络通信基础 ]——网络的传输介质(双绞线,光纤,标准,线序)
  • [20190401]关于semtimedop函数调用.txt
  • [ABC294Ex] K-Coloring
  • [autojs]autojs开关按钮的简单使用