精华内容
下载资源
问答
  • SimpleDateFormat日期自定义格式转换类,这个挺好用。首先需要了解一些日期的代表符号: yyyy 四位年 yy 两位年 MM 月份 始终两位 M 月份 dd 始终两位日期 d 日期 HH 24小时制 始终两位 H 24...

    SimpleDateFormat日期的自定义格式转换类,这个挺好用。

    首先需要了解一些日期的代表符号:

     yyyy    四位年
     yy       两位年
     MM    月份  始终两位
     M       月份     
     dd      始终两位日期
     d        日期
     HH    24小时制  始终两位
     H       24小时制
     hh     12小时制  始终两位

     h       12小时制
     mm   分钟   始终两位

     ss      秒  始终两位

    接下来new出SimpleDateFormat对象,在构造器的传入参数是String类型的,把我们的时间格式设置进去,如图:


    -----------------------------------------

    然后SimpleDateFormat有两个常用的方法。

    format( )方法,把一个Date类型的时间转换成我们设置好的时间格式,返回是String字符串。


    -----------------------------------------

    parse( )方法,把一个字符串格式的时间类型转换成Date类型,返回是Date对象。


    需要异常捕获或者异常抛出,时间格式转换异常。java.text.ParseException

    展开全文
  • json格式日期转换为自定义格式

    千次阅读 2012-05-18 18:43:19
    这个格式数据,我以前未使用过,也不知道如何转换为datetime的格式。   最先想到的办法当然是从网上找了,不过很可惜,找了很多方法都不见效。不过有一点提醒了我,在我找到的资料中提到,其中的一长串数据’...
     
    

    今天在做AJAX数据传输方面的示例。突然发现当以json格式返回日期对像时,直接取得的结果如下 '/Date(1316756746000)/'。这个格式数据,我以前未使用过,也不知道如何转换为datetime的格式。

     

    最先想到的办法当然是从网上找了,不过很可惜,找了很多方法都不见效。不过有一点提醒了我,在我找到的资料中提到,其中的一长串数据’1316756746000‘实际代表是毫秒。于是我想直接用毫秒生成日期了。具体做法如下:

     

    1、过滤不需要的字符,如/和Date(等

     

    var xx='/Date(1316756746000)/';

    var tt=xx.substring(6,xx.length-2);

    这样就得到如下结果

    1316756746000

     

    2、把毫秒转换为日期

    var jsonDate=new Date(parseInt( xx.substring(6,xx.length-2)));//注意要先转换为int类型哟

     

    3、把日期格式化为想要的格式,由于没有直接的格式化方法,所以采用了网上的公共方法。如下

    Date.prototype.format = function(format){
        var o =
        {
            "M+" : this.getMonth()+1, //month
            "d+" : this.getDate(),    //day
            "h+" : this.getHours(),   //hour
            "m+" : this.getMinutes(), //minute
            "s+" : this.getSeconds(), //second
            "q+" : Math.floor((this.getMonth()+3)/3),  //quarter
            "S" : this.getMilliseconds() //millisecond
        }
        if(/(y+)/.test(format))
        format=format.replace(RegExp.$1,(this.getFullYear()+"").substr(4 - RegExp.$1.length));
        for(var k in o)
        if(new RegExp("("+ k +")").test(format))
        format = format.replace(RegExp.$1,RegExp.$1.length==1 ? o[k] : ("00"+ o[k]).substr((""+ o[k]).length));
        return format;
    }

     

    然后使用这个方法进行格式化

     

    var result = jsonDate.format("yyyy年mm月dd日");

     

    这时,再打印出来可以看到日期变成了 “2011年9月23日”。这就是我们想要的格式 了。

    展开全文
  • 日期转换为今天 完全自定义绝对日期数字字符串转化指定日期格式 自定义绝对日期数字字符串转化今天,明天,昨天,周几
    日期转换为今天
    完全自定义绝对日期数字字符串转化为指定日期格式
    自定义绝对日期数字字符串转化为今天,明天,昨天,周几

    NSString+Extension.h

    #import <Foundation/Foundation.h>
    @interface NSString (Extension)
    - (NSString *)currentDate;
    - (NSString *)getWeekDate;
    @end

    NSString+Extension.m

    #import "NSString+Extension.h"
    @implementation NSString (Extension)
    -(BOOL)leapYear : (long)currentday
    {
        if(currentday % 400 == 0)
        {
            return YES;
        }
        else if((currentday % 100 != 0) && (currentday % 4 == 0))
        {
            return YES;
        }
        else
        {
            return NO;
        }
    }
    #pragma mark - 把绝对时间转换为年/月/日格式的日期字符串
    -(NSString *)currentDate
    {
        if([self longLongValue] < 0)
        {
            return @"未知时间";
        }
    
        long long  dateDistace = ([self longLongValue]/1000 + 8*3600)/86400;
        long long n = 0;
        long i,j,k,m;
        long month[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
        NSMutableDictionary *dic = [self getStartDayWithminDistace:dateDistace];
        i = [dic[@"startDay"] longValue];
        n = [dic[@"startValue"] longLongValue];
        for(j = 1, k = 1; (n <= dateDistace) && (i < 3000); i++)
        {
            for(j = 1; j <= 12 ; j++)
            {
                m = month[j - 1];
                for(k = 1; k <= m; k++)
                {
                    n++;
                    if(n == dateDistace)
                    {
                        return  [NSString stringWithFormat:@"%ld/%ld/%ld", i, j,k];
                    }
                }
    
                if((j == 2) && [ self leapYear: i])
                {
                    n++;
                    if(n == dateDistace)
                    {
                        return  [NSString stringWithFormat:@"%ld/%ld/%ld", i, j,k];
                    }
                }
            }
        }
    
        return  nil;
    }
    
    #pragma mark - 把绝对时间转换为今天,昨天,明天,周几
    -(NSString *)getWeekDate
    {
        if([self longLongValue] < 0)
        {
            return @"未知时间";
        }
        long long nowTime = (long long)[[NSDate date] timeIntervalSince1970] + 8*3600;
    //    //测试代码
    //    long long  minDistace = ([self longLongValue]/1000 + 8*3600 + 1*24*3600)/86400;
        //注意Java服务器获取到的时间是精确到毫秒的,苹果获取到的时间默认是精确到秒,若想得到毫秒需要乘以1000,反之要除以1000;获取到的绝对时间都是以零时区的时间为准,所以北京要加八个小时时间
        long long  minDistace = ([self longLongValue]/1000 + 8*3600)/86400;
        long long  maxDistace = nowTime/86400;
        BOOL isOverNow = minDistace > maxDistace;
        if(isOverNow)
        {
            long long temp = minDistace;
            minDistace = maxDistace;
            maxDistace = temp;
        }
    
        long long n = 0;
        long i,j,k,m,interval;
        interval = 0;
        long month[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
        NSMutableDictionary *dic = [self getStartDayWithminDistace:minDistace];
        i = [dic[@"startDay"] longValue];
        n = [dic[@"startValue"] longLongValue];
        for(j = 1, k = 1; (n <= maxDistace) && (i < 3000); i++)
        {
            for(j = 1; j <= 12 ; j++)
            {
                m = month[j - 1];
                for(k = 1; k <= m; k++)
                {
                    n++;
                    if(n == minDistace)
                    {
                        interval++;
                    }
    
                    if(n == maxDistace)
                    {
                        return [self getWeekDatValueWithIsOverNow:isOverNow interval:interval];
                    }
                    else if(interval > 0)
                    {
                        interval++;
                    }
                }
    
                if((j == 2) && [ self leapYear: i])
                {
                    n++;
                    if(n == minDistace)
                    {
                        interval++;
                    }
    
                    if(n == maxDistace)
                    {
                        return [self getWeekDatValueWithIsOverNow:isOverNow interval:interval];
                    }
                    else if(interval > 0)
                    {
                        interval++;
                    }
                }
            }
        }
    
        return  nil;
    }
    
    -(NSMutableDictionary *)getStartDayWithminDistace:(long long)minDistace
    {
        NSMutableDictionary *dic = [NSMutableDictionary dictionary];
        if(minDistace >= 17167)
        {
            [dic setSafeObject:@"2017" forKey:@"startDay"];
            [dic setSafeObject:@"17167" forKey:@"startValue"];
        }
        else if(minDistace >= 16436)
        {
            [dic setSafeObject:@"2015" forKey:@"startDay"];
            [dic setSafeObject:@"16436" forKey:@"startValue"];
        }
        else if(minDistace >= 14610)
        {
            [dic setSafeObject:@"2010" forKey:@"startDay"];
            [dic setSafeObject:@"14610" forKey:@"startValue"];
        }
        else if(minDistace >= 10957)
        {
            [dic setSafeObject:@"2000" forKey:@"startDay"];
            [dic setSafeObject:@"10957" forKey:@"startValue"];
        }
        else
        {
            [dic setSafeObject:@"1970" forKey:@"startDay"];
            [dic setSafeObject:@"0" forKey:@"startValue"];
        }
        return dic;
    }
    
    -(NSString *)getWeekDatValueWithIsOverNow:(BOOL)isOverNow
                                     interval:(NSInteger)interval
    {
        NSDate *inputDate = [NSDate date];
        NSArray *weekdays = [NSArray arrayWithObjects:[NSNull null],@"周日", @"周一", @"周二", @"周三", @"周四", @"周五", @"周六", nil];
    
        NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
    
        NSTimeZone *timeZone = [[NSTimeZone alloc] initWithName:@"Asia/Shanghai"];
    
        [calendar setTimeZone: timeZone];
    
        NSCalendarUnit calendarUnit = NSCalendarUnitWeekday;
        /*注意经过测试,就是你把这个日期(inputDate)置为以前的时间,通过[calendar components:calendarUnit fromDate:inputDate]你得到的theComponents.weekday也是今天所的周几,如:今天是周五,theComponents.weekday为5,和inputDate无关。所以只有你自己实现和今天的差的天数来确定具体哪天是周几才正确*/
        NSDateComponents *theComponents = [calendar components:calendarUnit fromDate:inputDate];
        NSLog(@"inputDate:%@, --%@", inputDate, [weekdays objectAtIndex:theComponents.weekday]);
    
        if(interval == 1)
        {
            return @"今天";
        }
        else if(interval == 2)
        {
            if(isOverNow)
            {
                return @"明天";
            }
            else
            {
                return @"昨天";
            }
        }
        else
        {
            NSInteger weekdayIndex = theComponents.weekday;
            NSInteger  num = (interval - 1)/7 + 1;
            if(isOverNow)
            {
                weekdayIndex = (num*7 + weekdayIndex + (interval - 1))%7;
            }
            else
            {
                weekdayIndex = (num*7 + weekdayIndex - (interval - 1))%7;
            }
    
            if(weekdayIndex == 0)
            {
                weekdayIndex = 7;
            }
            return [weekdays objectAtIndex:weekdayIndex];
        }
    }
    @end
    

    使用例子:
    先包含头文件

    #import "NSString+Extension.h"

    代转换字符串如:@”1490215716000”
    如你的时间是精确到秒的请先乘以1000后转化为字符串调用,因为java服务器保存的时间默认都是精确到毫秒,而苹果系统默认都是精确到秒,毫秒数都是在小数点后。
    使用时调用

        NSString *time = [NSString stringWithFormat:@"%lld", (long long)[[NSDate date] timeIntervalSince1970]*1000];
        NSLog(@"日期:%@", [time getWeekDate]);
    展开全文
  • 主要给大家介绍了关于Django中日期处理注意事项与自定义时间格式转换的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • 自定义时间格式转换,如"2012年5月14日"的日期字符串,大家参考使用吧
  • 文章目录一、 很多时候我们在view层接收到的数据类型和pojo中的类型并不匹配,此时就需要自定义一个转换器来辅助我们完成数据类型转换的工作。 一、 ...


    一、Spring支持的转换器

    Spring定义了3种类型的转换器接口,实现任意一个转换器接口都可以作为自定义转换器注册到ConversionServiceFactroyBean中:

    • Converter<S,T>:将S类型对象转为T类型对象。
    • ConverterFactory:将相同系列多个同质Converter封装在一起。如果希望将一种类型的对象转换为另一种类型及其子类的对象(例如将String转换为Number及Number子类(Integer、Long、Double等)对象)可使用该转换器工厂类。
    • GenericConverter:会根据源类对象及目标类对象所在的宿主类中的上下文信息进行类型转换.

    由于后两种形式并不常用,本文仅介绍第一种,实现Converter<S,T>接口的方法。

    二、自定义转换器的步骤

    ConverterService是一个接口,它有一个实现类Converter(转换器)进行工作。自定义转换器,步骤如下

    • ①先实现Converter接口,写一个自定义的类型转换器。
    • ②将Converter配置在ConverterService组件中。
    • ③将组件声明在annotation-driven标签中。

    在页面添加一个快速添加的按钮
    在这里插入图片描述
    list.jsp

    	<form action="${ctp }/quickadd">
    		<input name="empinfo" value="empAdmin-admin@qq.com-1-101"/>
    		<input type="submit" value="快速添加" />
    	</form>
    

    点击发送/quickadd请求到handler处理器

    	@RequestMapping("/quickadd")
    	public String quickAdd(@RequestParam("empinfo") Employee employee) {
    		System.out.println("封装:" + employee);
    		employDao.save(employee);
    		return "redirect:/emps";
    	}
    

    handler处理器中调用保存方法后发送/emps请求,进而返回list.jsp页面

    第一步:实现Converter接口

    页面提交的将要转换的字符串为:empAdmin-admin@qq.com-1-101

    • 自定的转换器实现的功能:将String类型转换为Employee对象。
    /**
     *	 S:Source 
     *	 T:Target 
     * 	 将String转换为Employee对象
     *	 @guoqianliang
     */
    public class MyStringToEmployeeConverter implements Converter<String, Employee> {
    
    	@Autowired
    	DepartmentDao dpartmentDao;
    
    	@Override
    	public Employee convert(String source) {
    
    		System.out.println("页面提交的将要转换的字符串:" + source);
    		Employee employee = new Employee();
    		if (source.contains("-")) {
    			String[] split = source.split("-");
    			employee.setLastName(split[0]);
    			employee.setEmail(split[1]);
    			employee.setGender(Integer.parseInt(split[2]));
    			employee.setDepartment(dpartmentDao.getDepartment(Integer.parseInt(split[3])));
    		}
    		return employee;
    	}
    }
    

    第二步:将Converter配置到ConverterService组件中

    • 将自定义的Converter实现类配置到ConverterService组件中。
    	<bean id="conversionService" class="org.springframework.context.support.ConversionServiceFactoryBean">
    		<!-- 添加自定义的类型转换器 -->
    		<property name="converters">
    			<set>
    				<bean class="com.gql.component.MyStringToEmployeeConverter"></bean>
    			</set>
    		</property>
    	</bean>
    

    后续为了与日期格式化兼容,通常使用下面的写法:

    	<bean id="conversionService"
    	class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
    		<!-- 添加自定义的类型转换器 -->
    		<property name="converters">
    			<set>
    				<bean class="com.gql.component.MyStringToEmployeeConverter"></bean>
    			</set>
    		</property>
    	</bean>
    

    第三步:将组件声明在annotation-driven标签中

    <mvc:annotation-driven conversion-service="conversionService"></mvc:annotation-driven>
    

    自定义转换器设置完成,控制台输出:

    页面提交的将要转换的字符串:empAdmin-admin@qq.com-1-101
    封装:Employee [id=null, lastName=empAdmin, email=admin@qq.com, gender=1, department=Department [id=101, departmentName=D-AA]]
    

    三、关于annotation-driven标签

    • <mvc:annotation-driven /"> 标签会自动注册RequestMappingHandlerMappingRequestMappingHandlerAdapterExceptionHandlerExceptionResolver三个bean。

    • 支持使用ConverterService实例对表单参数进行类型转换。

    • 支持使用@NumberFormat annotation@DateTimeFormart注解完成数据类型的格式化。

    • 支持使用@Valid注解对JavaBean实例进行JSR303校验。

    • 支持使用@RequestBody@ResponseBody注解。

    四、日期格式化

    对属性对象的输入和输出进行格式化,本质上还是类型转换的范畴。

    Spring在格式化模块中定义了一个实现ConverterService接口的FormattingConversionService实现类,该实现类扩展了GenericConversionService,因此它即具有类型转换的功能,又具有格式化的功能。

    • FormattingConversionService拥有一个工厂类FormattingConversionServiceFactoryBean,后者用于在Spring上下文中构造前者。
    • FormattingConversionServiceFactoryBean内部已经注册了
      ①NumberFormatAnnotationFormatterFactory:支持对数字类型的属性使用@NumberFormat注解
      如:@NumberFormat(pattern="#,###,###")
      ②JodaDateTimeFormatAnnotationFormatterFactory:支持对日期类型的属性使用@DateTimeFormat注解
      如:@DateTimeFormat(pattern = “yyyy-MM-dd”)

    另外,需要注意的是ConversionServiceFactoryBean所创建的ConversionService组件没有格式化器,使用时需要在SpringMVC配置中将其替换为FormattingConversionServiceFactoryBean组件。

    展开全文
  • 配置里先写配置文件(springmvc-web.xml) <!-- conversion-service 指定需要用的转换器 --> <mvc:annotation-driven conversion-service="convertorService">...-- 设置自定义转换器 ...
  • 第一步:自创建StringToDateConverter.java类,实现Converter转换接口,重写convert()方法。 import org.springframework.core.... * 自定义格式转换器 * **/ public class StringToDateConverter implements C...
  • 将毫秒时间转换为自定义格式的时间 将毫秒时间转换为自定义格式的时间的方法: 利用正则匹配并用毫秒时间替换自定义时间格式中对应的值来实现时间格式转换 /* 用于将毫秒时间转换为自定义格式的时间 * @method ...
  • 方法一我们只能指定一种日期格式,但是我们前端可能传递各种类型的日期格式,这个时候我们需要自定义Json日期转换器,如下在日期类型的属性上添加com.fasterxml.jackson.databind.annotation.JsonDeserialize注解...
  • 定义数据格式模式的格式符号 G 时代例如: G AD GGGG Anno Domini GGGGG A u 年它可以是正数或负数年是正数在?个时代开始?期之后年份是时代开始?期之前的负数2014年AD 是2014年和2014年BC 是-2014年例如: u/uuu/uuuu ...
  • 1.创建日期转换类 package com.bms.config.time; import com.bms.exception.BaseException; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.core.JsonProcessingException; ...
  • import datetime ...#自定义日期格式转str times=now.strftime("%Y-%m-%d %H:%M:%S") print(type(times)) #自定义指定日期 now=datetime.datetime(2019,10,1,12,32,40) #字符串转日期 s="2020-8-15 2:30:20" p...
  • 本文主要介绍Java中,使用EasyExcel读取Excel文件中数据时,处理日期、数字或者自定义格式转换数据的方法,以及使用示例代码。 原文地址:Java EasyExcel处理Excel日期、数字或者自定义格式转换方法及示例代码 ...
  • 自定义一个类,继承自DateTimeConverterBase,并重写WriteJson和ReadJson方法: public class CustomizedDateTimeConverer : DateTimeConverterBase { private static IsoDateTimeConverter dtConvertor = new ...
  • Struts2自定义日期转换

    千次阅读 2012-12-17 19:50:22
    自定义日期格式转换器,可以动态调整日期格式,并更新到数据库。  /** * 保存日期格式的基础类。 * * @author daichen * */ public class DateConverter extends StrutsTypeConverter { /** * 内存中的...
  • 关于自定义时间转换 ... 需要对日期格式为yyyyMMddHHmmss 转换为 yyyy-MM-dd HH:mm:ss 可以用以下代码 //对日期格式转换操作 String reportTime = 更改的日期 String reg = "(\\d{4})(\\d{2...
  • //日期相加天数  public String dayAddition(int num) {  try{  SimpleDateFormat timeformat = new SimpleDateFormat("yyyy-MM-dd");  java.util.Date date = timeformat.pars
  • Springboot自定义日期转换

    千次阅读 2019-01-02 19:08:01
    日期转换器类 package com.b.springboot.util; import org.springframework.core.convert.converter.Converter; import org.springframework.stereotype.Component; import java.text.DateFormat; import java....

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 122,358
精华内容 48,943
关键字:

自定义格式转换为日期格式