日期工具类详解编程语言
2023-06-13 09:11:48 时间
PATTERN_ERA: G, //Era 标志符 Era strings. For example: "AD" and "BC"
PATTERN_YEAR: y, //年
PATTERN_MONTH: M, //月份
PATTERN_DAY_OF_MONTH: d, //月份的天数
PATTERN_HOUR_OF_DAY1: k, //一天中的小时数(1-24)
PATTERN_HOUR_OF_DAY0: H, //24小时制,一天中的小时数(0-23)
PATTERN_MINUTE: m, //小时中的分钟数
PATTERN_SECOND: s, //秒
PATTERN_MILLISECOND: S, //毫秒
PATTERN_DAY_OF_WEEK: E, //一周中对应的星期,如星期一,周一
PATTERN_DAY_OF_YEAR: D, //一年中的第几天
PATTERN_DAY_OF_WEEK_IN_MONTH: F, //一月中的第几个星期(会把这个月总共过的天数除以7,不够准确,推荐用W)
PATTERN_WEEK_OF_YEAR: w, //一年中的第几个星期
PATTERN_WEEK_OF_MONTH: W, //一月中的第几星期(会根据实际情况来算)
PATTERN_AM_PM: a, //上下午标识
PATTERN_HOUR1: h, //12小时制 ,am/pm 中的小时数(1-12)
PATTERN_HOUR0: K, //和h类型
PATTERN_ZONE_NAME: z, //时区名
PATTERN_ZONE_VALUE: Z, //时区值
PATTERN_WEEK_YEAR: Y, //和y类型
PATTERN_ISO_DAY_OF_WEEK: u,
PATTERN_ISO_ZONE: X
week: {
ch: {
"0": "日",
"1": "一",
"2": "二",
"3": "三",
"4": "四",
"5": "五",
"6": "六"
en: {
"0": "Sunday",
"1": "Monday",
"2": "Tuesday",
"3": "Wednesday",
"4": "Thursday",
"5": "Friday",
"6": "Saturday"
/**
* @description 获取当前时间
* @return {string}
getCurrentTime: function() {
var today = new Date();
var year = today.getFullYear();
var month = today.getMonth() + 1;
var day = today.getDate();
var hours = today.getHours();
var minutes = today.getMinutes();
var seconds = today.getSeconds();
var timeString = year + "-" + month + "-" + day + " " + hours + ":" + minutes + ":" + seconds;
return timeString;
/**
* @description 比较时间大小
* @param time1
* @param time2
* @return {number} time1 time2 return 1 time1 time2 return -1 time1==time2 return 0
compareTime: function(time1, time2) {
if (Date.parse(time1.replace(/-/g, "/")) Date.parse(time2.replace(/-/g, "/"))) {
return 1;
} else if (Date.parse(time1.replace(/-/g, "/")) Date.parse(time2.replace(/-/g, "/"))) {
return -1;
} else if (Date.parse(time1.replace(/-/g, "/")) == Date.parse(time2.replace(/-/g, "/"))) {
return 0;
/**
* @description 是否闰年
* @param year
* @return {boolean}
isLeapYear: function(year) {
return ((year % 4 === 0 year % 100 !== 0) || year % 400 === 0);
/**
* @description 获取某个月的天数,从0开始
* @param year
* @param month
* @return {*}
getDaysOfMonth: function(year, month) {
return [31, (this.isLeapYear(year) ? 29 : 28), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][month];
/**
* @description 获取某个月的天数1-12月
* @param year
* @param month
* @return {*}
getDaysOfMonth2: function(year, month) {
// 将天置为0,会获取其上个月的最后一天
var date = new Date(year, month, 0);
return date.getDate();
/**
* @description 距离现在几天的日期:负数表示今天之前的日期,0表示今天,整数表示未来的日期如-1表示昨天的日期,0表示今天,2表示后天
* @param days
* @return {string}
fromToday: function(days) {
var today = new Date();
today.setDate(today.getDate() + days);
var date = today.getFullYear() + "-" + (today.getMonth() + 1) + "-" + today.getDate();
return date;
/**
* @description 日期时间格式化
* @param {Object} dateTime 需要格式化的日期时间
* @param {String} pattern 格式化的模式,如yyyy-MM-dd hh(HH):mm:ss.S a k K E D F w W z Z
formt: function(dateTime, pattern) {
var date = new Date(dateTime);
if (pattern == undefined || pattern ==) {
return date.toLocaleString();
return pattern.replace(/([a-z])/1*/ig, function(matchStr, group1) {
var replacement = "";
switch (group1) {
case DateUtils.patterns.PATTERN_ERA: //G
break;
case DateUtils.patterns.PATTERN_WEEK_YEAR: //Y
case DateUtils.patterns.PATTERN_YEAR: //y
replacement = date.getFullYear();
break;
case DateUtils.patterns.PATTERN_MONTH: //M
var month = date.getMonth() + 1;
replacement = (month 10 matchStr.length = 2) ? "0" + month : month;
break;
case DateUtils.patterns.PATTERN_DAY_OF_MONTH: //d
var days = date.getDate();
replacement = (days 10 matchStr.length = 2) ? "0" + days : days;
break;
case DateUtils.patterns.PATTERN_HOUR_OF_DAY1: //k(1~24)
var hours24 = date.getHours();
replacement = hours24;
break;
case DateUtils.patterns.PATTERN_HOUR_OF_DAY0: //H(0~23)
var hours24 = date.getHours();
replacement = (hours24 10 matchStr.length = 2) ? "0" + hours24 : hours24;
break;
case DateUtils.patterns.PATTERN_MINUTE: //m
var minutes = date.getMinutes();
replacement = (minutes 10 matchStr.length = 2) ? "0" + minutes : minutes;
break;
case DateUtils.patterns.PATTERN_SECOND: //s
var seconds = date.getSeconds();
replacement = (seconds 10 matchStr.length = 2) ? "0" + seconds : seconds;
break;
case DateUtils.patterns.PATTERN_MILLISECOND: //S
var milliSeconds = date.getMilliseconds();
replacement = milliSeconds;
break;
case DateUtils.patterns.PATTERN_DAY_OF_WEEK: //E
var day = date.getDay();
replacement = DateUtils.week[ch][day];
break;
case DateUtils.patterns.PATTERN_DAY_OF_YEAR: //D
replacement = DateUtils.dayOfTheYear(date);
break;
case DateUtils.patterns.PATTERN_DAY_OF_WEEK_IN_MONTH: //F
var days = date.getDate();
replacement = Math.floor(days / 7);
break;
case DateUtils.patterns.PATTERN_WEEK_OF_YEAR: //w
var days = DateUtils.dayOfTheYear(date);
replacement = Math.ceil(days / 7);
break;
case DateUtils.patterns.PATTERN_WEEK_OF_MONTH: //W
var days = date.getDate();
replacement = Math.ceil(days / 7);
break;
case DateUtils.patterns.PATTERN_AM_PM: //a
var hours24 = date.getHours();
replacement = hours24 12 ? "上午" : "下午";
break;
case DateUtils.patterns.PATTERN_HOUR1: //h(1~12)
var hours12 = date.getHours() % 12 || 12; //0转为12
replacement = (hours12 10 matchStr.length = 2) ? "0" + hours12 : hours12;
break;
case DateUtils.patterns.PATTERN_HOUR0: //K(0~11)
var hours12 = date.getHours() % 12;
replacement = hours12;
break;
case DateUtils.patterns.PATTERN_ZONE_NAME: //z
replacement = DateUtils.getZoneNameValue(date)[name];
break;
case DateUtils.patterns.PATTERN_ZONE_VALUE: //Z
replacement = DateUtils.getZoneNameValue(date)[value];
break;
case DateUtils.patterns.PATTERN_ISO_DAY_OF_WEEK: //u
break;
case DateUtils.patterns.PATTERN_ISO_ZONE: //X
break;
default:
break;
return replacement;
});
/**
* @description 计算一个日期是当年的第几天
* @param {Object} date
dayOfTheYear: function(date) {
var obj = new Date(date);
var year = obj.getFullYear();
var month = obj.getMonth(); //从0开始
var days = obj.getDate();
var daysArr = [31, (this.isLeapYear(year) ? 29 : 28), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
for (var i = 0; i month; i++) {
days += daysArr[i];
return days;
/**
* @description 获得时区名和值
* @param dateObj
* @return {{name: *, value: *}}
getZoneNameValue: function(dateObj) {
var date = new Date(dateObj);
date = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate()));
var arr = date.toString().match(/([A-Z]+)([-+]/d+:?/d+)/);
var obj = {
name: arr[1],
value: arr[2]
return obj;
};
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/18085.html
cjava相关文章
- js获取当前日期并格式化_json格式怎么打开
- Typecho保存或发布文章发布日期为1970
- Python实战之数字、日期和时间的高级处理
- Oracle 通过sql to_date()和 to_char() 转化日期格式
- 便携式钻孔测斜仪日期时间与输入法设置
- java最全最常用的日期工具类(随时补充)
- Java操作日期时间的工具类详解编程语言
- MySQL日期加减的实现方法(mysql日期加减)
- BDC中日期和数量格式的转换处理详解编程语言
- 使用Oracle日期截取函数实现日期转换(oracle日期截取函数)
- Oracle 日期处理:精准掌握日期范围(oracle日期范围)
- Linux下如何用日期命名文件(linux日期命名文件)
- 教你如何使用Oracle日期格式化——附详细图片演示(oracle日期格式图片)
- 数据使用Oracle查询指定日期范围内的数据(oracle查询指定日期)
- 值Oracle中设置日期类型的最小值(oracle日期最小)
- 密Oracle日期加密保护隐私的新机制(oracle date加)
- js实现日期灵活格式化的小例子