`
- 浏览:
239153 次
- 性别:
- 来自:
北京
-
js中Date对象的format操作类,名为DateFormat,很好用
- <pre class="javascript" name="code">
-
-
-
-
-
-
-
-
-
-
-
-
- var DateFormat = function(bDebug){
- this.isDebug = bDebug || false;
- this.curDate = new Date();
- }
-
- DateFormat.prototype = {
-
- DEFAULT_DATE_FORMAT: 'yyyy-MM-dd',
- DEFAULT_MONTH_FORMAT: 'yyyy-MM',
- DEFAULT_YEAR_FORMAT: 'yyyy',
- DEFAULT_TIME_FORMAT: 'HH:mm:ss',
- DEFAULT_DATETIME_FORMAT: 'yyyy-MM-dd HH:mm:ss',
- DEFAULT_YEAR: 'YEAR',
- DEFAULT_MONTH: 'MONTH',
- DEFAULT_DATE: 'DATE',
- DEFAULT_HOUR: 'HOUR',
- DEFAULT_MINUTE: 'MINUTE',
- DEFAULT_SECOND: 'SECOND',
-
-
-
-
-
-
-
- formatCurrentDate: function(strFormat){
- try{
- var tempFormat = strFormat == undefined? this.DEFAULT_DATETIME_FORMAT: strFormat;
- var dates = this.getDateObject(this.curDate);
- if(/(y+)/.test(tempFormat)){
- var fullYear = this.curDate.getFullYear() + '';
- var year = RegExp.$1.length == 4? fullYear: fullYear.substr(4 - RegExp.$1.length);
- tempFormat = tempFormat.replace(RegExp.$1, year);
- }
- for(var i in dates){
- if(new RegExp('(' + i + ')').test(tempFormat)){
- var target = RegExp.$1.length == 1? dates[i]: ('0' + dates[i]).substr(('' + dates[i]).length - 1);
- tempFormat = tempFormat.replace(RegExp.$1, target);
- }
- }
- return tempFormat === strFormat? this.curDate.toLocaleString(): tempFormat;
- }catch(e){
- this.debug('格式化日期出现异常:' + e.message);
- }
- },
-
-
-
-
-
-
-
-
-
-
- format: function(date, strFormat){
- try{
- if(date == undefined){
- this.curDate = new Date();
- }else if(!(date instanceof Date)){
- this.debug('你输入的date:' + date + '不是日期类型');
- return date;
- }else{
- this.curDate = date;
- }
- return this.formatCurrentDate(strFormat);
- }catch(e){
- this.debug('格式化日期出现异常:' + e.message);
- }
- },
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- parseDate: function(strDate, strFormat){
- if(typeof strDate != 'string'){
- return new Date();
- }
- var longTime = Date.parse(strDate);
- if(isNaN(longTime)){
- if(strFormat == undefined){
- this.debug('请输入日期的格式');
- return new Date();
- }
- var tmpDate = new Date();
- var regFormat = /(\w{4})|(\w{2})|(\w{1})/g;
- var regDate = /(\d{4})|(\d{2})|(\d{1})/g;
- var formats = strFormat.match(regFormat);
- var dates = strDate.match(regDate);
- if( formats != undefined && dates != undefined && formats.length == dates.length){
- for(var i = 0; i < formats.length; i++){
- var format = formats[i];
- if(format === 'yyyy'){
- tmpDate.setFullYear(parseInt(dates[i], 10));
- }else if(format == 'yy'){
- var prefix = (tmpDate.getFullYear() + '').substring(0, 2);
- var year = (parseInt(dates[i], 10) + '').length == 4? parseInt(dates[i], 10): prefix + (parseInt(dates[i], 10) + '00').substring(0, 2);
- var tmpYear = parseInt(year, 10);
- tmpDate.setFullYear(tmpYear);
- }else if(format == 'MM' || format == 'M'){
- tmpDate.setMonth(parseInt(dates[i], 10) - 1);
- }else if(format == 'dd' || format == 'd'){
- tmpDate.setDate(parseInt(dates[i], 10));
- }else if(format == 'HH' || format == 'H'){
- tmpDate.setHours(parseInt(dates[i], 10));
- }else if(format == 'mm' || format == 'm'){
- tmpDate.setMinutes(parseInt(dates[i], 10));
- }else if(format == 'ss' || format == 's'){
- tmpDate.setSeconds(parseInt(dates[i], 10));
- }
- }
- return tmpDate;
- }
- return tmpDate;
- }else{
- return new Date(longTime);
- }
- },
-
-
-
-
-
-
-
-
-
-
-
- changeDate: function(date, interval, amount, strFormat, targetFormat){
- var tmpdate = new Date();
- if(date == undefined){
- this.debug('输入的时间不能为空!');
- return new Date();
- }else if(typeof date == 'string'){
- tmpdate = this.parseDate(date, strFormat);
- }else if(date instanceof Date){
- tmpdate = date;
- }
- var field = (typeof interval == 'string')? interval.toUpperCase(): 'DATE';
-
- try{
- amount = parseInt(amount + '', 10);
- if(isNaN(amount)){
- amount = 0;
- }
- }catch(e){
- this.debug('你输入的[amount=' + amount + ']不能转换为整数');
- amount = 0;
- }
- switch(field){
- case this.DEFAULT_YEAR:
- tmpdate.setFullYear(tmpdate.getFullYear() + amount);
- break;
- case this.DEFAULT_MONTH:
- tmpdate.setMonth(tmpdate.getMonth() + amount);
- break;
- case this.DEFAULT_DATE:
- tmpdate.setDate(tmpdate.getDate() + amount);
- break;
- case this.DEFAULT_HOUR:
- tmpdate.setHours(tmpdate.getHours() + amount);
- break;
- case this.DEFAULT_MINUTE:
- tmpdate.setMinutes(tmpdate.getMinutes() + amount);
- break;
- case this.DEFAULT_SECOND:
- tmpdate.setSeconds(tmpdate.getSeconds() + amount);
- break;
- default:
- this.debug('你输入的[interval:' + field + '] 不符合条件!');
- }
-
- this.curDate = tmpdate;
- return this.formatCurrentDate(targetFormat == undefined? strFormat: targetFormat);
- },
-
-
-
-
-
-
-
-
-
- compareTo: function(date1, date2, isFormat){
- try{
- var len = arguments.length;
- var tmpdate1 = new Date();
- var tmpdate2 = new Date();
- if(len == 1){
- tmpdate1 = date1;
- }else if(len >= 2){
- tmpdate1 = date1;
- tmpdate2 = date2;
- }
- if(!(tmpdate1 instanceof Date) || !(tmpdate2 instanceof Date)){
- return 0;
- }else{
- var time1 = tmpdate1.getTime();
- var time2 = tmpdate2.getTime();
- var time = Math.max(time1, time2) - Math.min(time1, time2);
- if(!isNaN(time) && time > 0){
- if(isFormat){
- var date = new Date(time);
- var result = {};
- result['year'] = (date.getFullYear() - 1970) > 0? (date.getFullYear() - 1970): '0';
- result['month'] = (date.getMonth() - 1) > 0? (date.getMonth() - 1): '0';
- result['day'] = (date.getDate() - 1) > 0? (date.getDate() - 1): '0';
- result['hour'] = (date.getHours() - 8) > 0? (date.getHours() - 1): '0';
- result['minute'] = date.getMinutes() > 0? date.getMinutes(): '0';
- result['second'] = date.getSeconds() > 0? date.getSeconds(): '0';
- return result;
- }else {
- return time;
- }
- }else{
- return 0;
- }
- }
- }catch(e){
- this.debug('比较时间出现异常' + e.message);
- }
- },
-
-
-
-
-
-
- getDateObject: function(date){
- if(!(date instanceof Date)){
- date = new Date();
- }
- return {
- 'M+' : date.getMonth() + 1,
- 'd+' : date.getDate(),
- 'H+' : date.getHours(),
- 'm+' : date.getMinutes(),
- 's+' : date.getSeconds()
- };
- },
-
-
-
-
-
- debug: function(message){
- try{
- if(!this.isDebug){
- return;
- }
- if(!window.console){
- window.console = {};
- window.console.log = function(){
- return;
- }
- }
- window.console.log(message + ' ');
- }catch(e){
- }
- }
- }
- </pre><br>
- <pre></pre>
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
使用 `DateFormat` 类可以将日期和时间对象转换为字符串,以便以特定的格式显示。以下是一些常见的日期格式化示例: - `DateFormat.getDateInstance()`:默认的日期格式(例如:2009-02-28) - `DateFormat....
为了使用这个工具,首先需要引入`DateUtil.js`到你的JavaScript代码中,然后创建一个`Date`对象或者使用现有的`Date`对象,接着调用`format()`方法,传入日期对象和所需的格式字符串。 ```javascript // 引入...
例如,`DateFormat.format(date)`将日期对象转换为字符串,而`DateFormat.parse(string)`则将字符串转换为日期对象。 最后,`Calendar`类是`Date`的一个增强版本,提供了更灵活的日期和时间操作。它支持日历字段,...
在JavaScript中,日期和时间处理是一项常见的任务,`Date`对象是JavaScript内置的处理日期和时间的类。当我们需要将日期格式化为"yyyy-MM-dd"这种格式时,JavaScript提供了多种方法来实现这一需求。这个格式通常用于...
在 Java 语言中,日期操作类是非常重要的一部分,常用的日期操作类有 Date 类、Calendar 类和 DateFormat 类。下面是对这三个类的详细介绍: Date 类 Date 类是 Java 语言中最基本的日期操作类,位于 java.util ...
【Java常用API】深入解析 在Java编程中,掌握常用...通过以上讲解,我们可以更好地理解和使用Java中的日期处理、字符串转换、数学计算以及正则表达式验证。掌握这些常用API将有助于提升编程能力,让代码更加简洁高效。
### Java使用DateFormat类转换时间格式 #### 一、引言 在Java编程中,处理日期与时间是非常常见的需求之一。`java.util`包中的`DateFormat`类提供了多种方法来格式化日期并将其转换为字符串,或者将字符串解析为...
在上面的代码中,我们使用 getDateInstance 方法获取不同的日期格式,例如 SHORT、MEDIUM、FULL,然后使用 format 方法将 Date 转换为 String。 Date、String、Timestamp 之间的转换是 Java 开发中一个非常重要的...
总结来说,Java中的`Date`和`Calendar`类提供了基本的时间处理功能,`DateFormat`和`SimpleDateFormat`则负责日期和时间的格式化,使我们能够根据需要将日期和时间转换为人类可读的字符串。在实际开发中,这些类经常...
例如,我们可以创建一个`SimpleDateFormat`实例,设置"yyyy-MM-dd HH:mm:ss"的格式,然后使用`parse()`方法解析日期字符串,或者用`format()`方法将日期对象转换为字符串。 在更复杂的时间操作中,`Calendar`类扮演...
然后,用这些格式化器的`format()`方法将`Date`对象转换为相应的字符串。 除了`SimpleDateFormat`和`DateFormat`,还有`DateTimeFormatter`(Java 8及更高版本)可以用来进行更灵活的日期和时间格式化。`...
Java中的Date和Calendar类是处理日期和时间的核心组件。Date类主要用于表示特定的瞬间,精确到毫秒。在早期版本的Java中,Date类的设计受到批评,因为它的API不直观且容易导致错误。为了解决这些问题,大部分日期和...
使用`java.text.SimpleDateFormat`类,可以将Date对象格式化为指定格式的字符串。例如,将日期加一天后,可以使用`SimpleDateFormat("yyyy-MM-dd")`格式化日期和时间。 - **JSP页面中的日期格式化**: 在JSP中,...
根据提供的文件信息,我们可以总结出以下关于Java中Date类及其时间格式化的相关知识点: ### Java Date 类概述 在Java中,`java.util.Date`类表示特定的瞬间,精确到毫秒。该类提供了多种构造方法来创建日期实例,...
例如,在处理用户输入的数据、解析文本文件或与数据库交互时,通常需要将字符串转换为日期对象进行进一步的操作,如日期计算、排序等;相反地,也需要将日期对象格式化为特定格式的字符串以便于展示给用户或存储到...
标题中的"DateFormat_Dateformat_"可能是指在编程中处理日期格式化时使用特定的分隔符“-”来组织日期字符串。在很多编程语言中,日期和时间的格式化是通过特定的方法或函数来完成的,这通常涉及到指定日期的各个...
通过以上介绍,我们可以看到,在Java中获取当前时间有多种方法,其中使用`java.util.Date`类和`java.text.DateFormat`类是一种较为传统但非常实用的方式。这些方法不仅能够满足大多数情况下对时间和日期的格式化需求...
Java date format时间格式化操作示例 Java Date Format 是 Java 语言中用于格式化日期和时间的类库。DateFormat 类是 Java 的一个抽象类,它提供了将日期和时间转换为字符串的方法。通过使用 DateFormat,可以将...