import datetime #当前时间 print datetime.datetime.now() 2018-06-13 16:22:42.414143 #当前时间减去七天 print datetime.datetime.now...() - datetime.timedelta(days=7) 2018-06-06 16:22:38.271888 print datetime.datetime.now().strftime("%Y
标题 Python中Datetime的使用 1. 介绍 每次使用python处理datetime数据的时候,我总需要在书上查找或者网上搜索,使用后就很快忘记了,所以在这里整理出来一些常用方法。...常用方法 2.1 获取当前的日期时间 from datetime import datetime print(datetime.now()) # 2023-09-28 09:05:47.862986...2.2 创建一个时间日期的datetime对象 from datetime import datetime dt = datetime(2023, 10, 24) print(dt) # 2023-10...2.4 把一个日期类型的字符串转为datetime对象 from datetime import datetime string = '2023-12-24' dt = datetime.strptime...,可以用以下方法: from datetime import datetime dt = datetime(2023, 10, 24) string = datetime.strftime(dt, '%
%PATH:~10,5% 会扩展 PATH 环境变量,然后只使用在扩展结果中从第 11 个(偏 移量 10)字符开始的五个字符。如果没有指定长度,则采用默认 值,即变量数值的余数。...如果两个数字(偏移量和长度)都是负数, 使用的数字则是环境变量数值长度加上指定的偏移量或长度。 %PATH:~-10% 会提取 PATH 变量的最后十个字符。
datetime.datetime.now(tz=None) # 获取utc时间 datetime.datetime.utcnow() 时间格式的转换 datetime.datetime -> str...now = datetime.datetime.now(tz=None) now.strftime("%Y-%m-%d %H:%M:%S") str -> datetime.datetime >>>...now '2021-01-03 23:38:26' >>> datetime.datetime.strptime(now, "%Y-%m-%d %H:%M:%S") datetime.datetime...(2021, 1, 3, 23, 38, 26) datetime.datetime -> timestamp >>> now datetime.datetime(2021, 1, 3, 23, 40,...>>> datetime.datetime.fromtimestamp(ts, tz=None) datetime.datetime(2021, 1, 3, 23, 40, 45, 749240) 时间运算
基本语法——常量constant 一、常量的使用 1.1 常量声明 常量是一个简单值的标识符,在程序运行时,不会被修改的量。...,常量组 const ( Unknown = 0 Female = 1 Male = 2) 常量组中如不指定类型和初始化值,则与上一行非空常量右值相同 package mainimport...: 常量中的数据类型只可以是布尔型、数字型(整数型、浮点型和复数)和字符串型 不曾使用的常量,在编译的时候,是不会报错的 显示指定类型的时候,必须确保常量左右值类型一致,需要时可做显示类型转换。...这与变量就不一样了,变量是可以是不同的类型值 1.2 iota iota,特殊常量,可以认为是一个可以被编译器修改的常量 iota 可以被用作枚举值: const ( a = iota b...= iota c = iota) 第一个 iota 等于 0,每当 iota 在新的一行被使用时,它的值都会自动加 1;所以 a=0, b=1, c=2 可以简写为如下形式: const (
前言 在开发中,也许我们会经常使用到宏定义,或者用const修饰一些数据类型,经常有开发者不知道怎么正确使用,导致项目中乱用宏定义与const修饰符。...本篇主要介绍在开发中怎么正确使用const与define(宏定义) 当我们想定义全局共用的一些数据时,比如通知名字,动画时长等等,我们可以用宏、常量、变量: 宏: // 注意后面不需要带符号...甚至有相同后缀的字符串也可以优化,你可以使用GCC编译测试,Hello world与world两个字符串,只存储前面一个。...取的时候只需要给前面和中间的地址,如果是整型、浮点型会有多分拷贝,但这些数写在指令中,占的只是代码片段而且,大量使用宏会导致二进制文件变大。...define在预处理阶段进行替换,const常量在编译阶段使用; define不做类型检查,只进行替换,const常量有数据类型,会执行类型检查; define不能调试,const常量可以调试; define
1、概述 在编码过程中,避免不了维护一些常量。而通过这么多的项目中发现,使用方式都不尽相同。...因为我在阅读《Effective Java》这本书中提到过: 如果某个实现了常量接口的类被修改不再需要常量了,也会因为序列化兼容原因不得不保持该实现,而且非final类实现常量接口会导致所有子类被污染...什么时候使用枚举呢?其实建议使用枚举。《Effective Java》中也是推荐使用枚举代替int常量的。...此处个人不建议什么都使用枚举来代替常量类。比如毫无规则归类可言的一些常量:如SUCCUSS字符串、密钥串、路径等等这些,可以放在一个常量类里面糅在一起。...3、使用场景 大力推荐枚举类型的使用,让他无处不在的去管理你的代码,可以让代码结构更加清晰易懂可扩展。而常量类可以收集管理一些比较杂的一些常量。
功能需求:为软件设定一个使用有效期,当超过指定时间后,程序无法运行。 实现思路:定义一个常量,用于记录一个时间,我们称之为标记时间,使用当前时间减去标记时间,如果时间间隔大于设定的有效期,退出程序。...具体步骤: 1.定义标记时间常量: //标记时间 private const string flag = "2022-03-17 17:11:25"; 使用DateTime.Parse可将其转换为DateTime...类型: DateTime flagTime = DateTime.Parse(flag); 2.获取当前时间: DateTime nowTime = DateTime.Now; 3.计算时间间隔: TimeSpan...span = nowTime - flagTime; 4.判断时间间隔是否大于有效期: if (span.Days >= expires) Application.Quit(); 但是这样实现会有一个问题...flagTime = DateTime.Parse(flag); DateTime nowTime = DateTime.Parse(timeStr);
= 0 两种情况做不同的实现,该怎么做呢?...= 0 {} 常量泛型参数 常量泛型参数 (const generics parameters): 可以在任何 常量条目 中使用,而且只能独立使用,通常作为某类型的参数出现。...作为一种常量上下文 (const context),只与常量表达式和常量函数共存,无法与普通表达式一起使用。...除非是单路径(单个标识符)或 literal,它必须使用 { ... } 块表达式的形式。 在单态化之后计算值,这与关联常量 (associated constants) 类似。...我给出自己的思考结果: 常量泛型参数无法拓展到自定义类型,所以需要围绕基本类型来实现; 常量表达式总是意味着它的值必须在编译时知晓,所以它的来源很狭窄,唯有泛型函数帮助我们做更多事情。
Python 中的日期不是独立的数据类型,但我们可以导入一个名为 datetime 的模块来使用日期作为日期对象。...示例:导入 datetime 模块并显示当前日期: import datetime x = datetime.datetime.now() print(x) 日期输出 当我们执行上面示例中的代码时,结果将是...以下是一些示例,您将在本章后面了解更多信息: 示例:返回年份和星期几的名称: import datetime x = datetime.datetime.now() print(x.year) print...(x.strftime("%A")) 创建日期对象 要创建日期,我们可以使用 datetime 模块的 datetime() 类(构造函数)。...示例:创建日期对象: import datetime x = datetime.datetime(2020, 5, 17) print(x) datetime() 类还接受时间和时区的参数(小时、分钟
前言 Pydantic 支持 datatime 模块的日期和时间类型 datetime 日期时间类型 datetime字段可以是: datetime, 现有datetime对象 int或float,假定为...2e10) str, 以下格式有效: YYYY-MM-DD[T]HH:MM[:SS[.ffffff]][Z or [±]HH[:]MM]]] int或float作为字符串(假定为 Unix 时间) 使用示例...Unix 时间 str, 以下格式有效:YYYY-MM-DD int或float,见datetime Unix 时间 from datetime import datetime, date from...(2032, 4, 22), 'dt': datetime.datetime(2032, 4, 23, 10, 20, 30, 400000, tzinfo=datetime.timezone(...datetime.timedelta(seconds=9000))), 't': datetime.time(4, 8, 16), 'td': datetime.timedelta(days
在 Go 中声明和使用常量非常简单,本文将介绍如何在 Go 中声明和使用常量。...声明常量:在 Go 中声明常量使用关键字 const,语法格式如下:const identifier [type] = value其中,identifier:常量的名称type:常量的数据类型,可省略,...在这个例子中,我们显式地指定了常量的数据类型为 int。使用常量:使用常量非常简单,只需要通过其名称来引用即可。...例如,使用上面的 age 常量:package mainimport "fmt"func main() { const age int = 18 fmt.Println("My age is...", age)}在上面的代码中,我们使用了 fmt.Println 函数输出了一个字符串和 age 常量的值。
前言 const 用于声明一个或多个常量,声明时必须进行初始化,且初始化后值不可再修改。...const 声明常量 const定义常量与使用let 定义的变量相似: 二者都是块级作用域 都不能和它所在作用域内的其他变量或函数拥有相同的名称 两者还有以下两点区别: const声明的常量必须初始化,...而let声明的变量不用 const 定义常量的值不能通过再赋值修改,也不能再次声明。...使用 const 定义的字符串和数字类型是不可变的,当定义一个对象或数组时,里面的内容是可以修改的。...: const a = ['hello', 'world']; a = ['x', 'y']; // 报错 总结:常量就是值(内存地址)不能变化的量,const定义常用需给初始值。
前言 使用datetime 日期类型时,想格式化成自定义的"%Y-%m-%d %H:%M:%S" 格式 datetime 类型 from pydantic import BaseModelfrom datetime...import datetime# 上海悠悠 wx:283340479# blog:https://www.cnblogs.com/yoyoketang/class UserInfo(BaseModel...): id: int name: str create_time: datetime=datetime.now() user = UserInfo(**{"id": 1, "name...类型 json_encoders 可以格式指定的类型 from pydantic import BaseModelfrom datetime import datetime# 上海悠悠 wx:283340479...=datetime.now() class Config: json_encoders = { datetime: lambda v: v.strftime
但是,在使用的过程当中,也发现了一些坑,开始的时候并没有察觉到是 Lombok 的问题,后来跟踪了对应的其他组件的源码,才发现是 Lombok 的问题!...Setter-Getter 方法的坑 问题发现 我们在项目当中主要使用 Lombok 的 Setter-Getter 方法的注解,也就是组合注解 @Data,但是在一次使用 Mybatis 插入数据的过程当中...于是,我就跟踪 Mybatis 的源码,发现 Mybatis 在获取这个 nMetaType 属性的时候使用了反射,使用的是 getxxxx 方法来获取的。...原因 Lombok 对于第一个字母小写,第二个字母大写的属性生成的 get-set 方法和 Mybatis 以及 idea 或者说是 Java 官方认可的 get-set 方法生成的不一样: #Lombok...如果数据库已经设计好,并且前后端接口对接好了,不想修改,那就专门为这种特殊的属性使用 idea 生成 get-set 方法。
将多个常量通过按位或 | 操作符合并为一个整数。然后在函数中通过按位与 & 运算符检查该整数是否包含某个常量。 <?
坑:@EqualsAndHashCode导致Hash容器寻不到数据 ---- 默认情况下,非static、非transient 的字段用来参与equals、hashCode方法的实现,对于Hash容器,...如果这两个方法的实现随着属性字段的修改,会导致找不到元素值的现象。...Node { private Object vale; } } 运行结果: 坑:@Setter、@Getter注解导致的序列化坑:第一个字母小写,第二个字母大写的属性生成的get-set...看一下生成的字节码反编译的效果: 我们对比下idea,Mybatis,Java官方认可的生成的方法: Lombok@Setter、@Getter注解对于第一个字母小写,第二个字母大写的属性生成的get-set...如果要使用Lombok,我们最好验证一下自动生成的代码(反编译字节码),是不是符合我们的需求。 我们的项目规范:一律禁止使用Lombok工具,使用IDE自动生成。 ----
我们将const 声明的变量绑定在全局对象上,借助 Object.defineProperty()劫持该对象,配置相关描述符实现const的特性。...参考 babeljs 如何在 ES5 环境下实现一个const
但是,在使用的过程当中,也发现了一些坑,开始的时候并没有察觉到是Lombok的问题,后来跟踪了对应的其他组件的源码,才发现是Lombok的问题!...Setter-Getter方法的坑 问题发现 我们在项目当中主要使用Lombok的Setter-Getter方法的注解,也就是组合注解@Data,但是在一次使用Mybatis插入数据的过程当中,出现了一个问题...于是,我就跟踪Mybatis的源码,发现Mybatis在获取这个nMetaType属性的时候使用了反射,使用的是getxxxx方法来获取的,但是我发现nMetaType的get方法好像有点和Mybatis...原因 Lombok对于第一个字母小写,第二个字母大写的属性生成的get-set方法和Mybatis以及idea或者说是Java官方认可的get-set方法生成的不一样: Lombok生成的Get-Set...idea生成get-set方法复制代码 @Accessor(chain = true)注解的问题 问题发现 在使用 easyexcel 导出的时候,发现以前的实体类导出都很正常,但是现在新加的实体类不正常了