标准世界时间的格式化

标准世界时的格式化

Java – 标准世界时(带TZ)的格式化

情景:Java 调用某某接口返回的数据中的时间格式为标准世界时间。

例如:“2021-12-16T06:07:00.0000000Z”
其中,T表示一个分隔符;Z表示了UTC时间。

拓展小知识:

UTC:协调世界时(英语:Coordinated Universal Time,法语:Temps Universel Coordonné,简称UTC)是最主要的世界时间标准,其以原子时秒长为基础

可以利用SimpleDateFormat转化为时间戳

对一开始的例子进行转化:

String dateStr =2021-12-16T06:07:00.0000000Z”;

//后面需要多少个小数位就有多少个S,而T与Z作为固定字符就使用单引号包裹起来。
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSSSSS’Z’");

//通过设置UTC时区,后续进行转化为时间戳的时候会自动转为本地时区。nice~
simpleDateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));

Date date = null;
try{
    date = simpleDateFormat.parse(dateStr);
 System.out.println(date); // date类型时间
    System.out.println(date.getTime()); // 时间戳
}catch(ParseException e){
    System.out.println("PraseeException:  "+e);
}

SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(sf.format(date));//指定格式的时间

JavaScript – 本地时差转化

情景:JS请求后获取的数据为标准时间(没有+8的那种),但是new Date(data)之后发现时间会自动加上那个时差??太奇怪了。

前端JS代码及输出如下:

console.log("release Time : ",releaseTime);  
// release Time :  2022-01-06T20:53:10.000+00:00

let d = new Date(releaseTime);

console.log("new Date : ",d); 
// new Date :  Fri Jan 07 2022 04:53:10 GMT+0800 (中国标准时间)

发布时间(releaseTime)后面的+00:00其实也等同于一个上面说的那个Z啦。JS的new Date会自动加上那个时差,如果不希望补上本地时差怎么办?可以利用函数getTimezoneOffset 来获取本地的时差,单位是分钟,在这里返回的是 -480 (这个负数值得揣摩)。利用时间戳 + 时差 来构造一个新的时间。

d = d.getTime()      +      d.getTimezoneOffset() * 60 * 1000; 
// 东八区的时间戳(单位:毫秒)  +   (-480分钟)*(60秒/分)*(1000毫秒/秒)

d = new Date(d); //利用新的时间戳再进行构造

这种方法 实质上只是减少了原数据的时间,所以输出的话还是会说GMT+0800,但是显示的年月日已经等同于原标准世界时的数据了,这时候再进行格式化一下就OK。

let resDate = d.getFullYear() + '-' + fillTime((d.getMonth() + 1)) + '-' + fillTime(d.getDate())
let resTime = fillTime(d.getHours()) + ':' + fillTime(d.getMinutes()) + ':' + fillTime(d.getSeconds())
releaseTime = resDate + " " + resTime; // 将 发布时间 转成了一个 格式化的时间字符串  yyyy-MM-dd HH:mm:ss

//上面用到的补全函数如下:
fillTime(s) {
	return s < 10 ? '0' + s : s
}
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
通用说明 1. 适用机构:在境内依法设立的银行机构,包括政策性银行、大型商业银行、股份制商业银行、城市商业银行、民营银行、农村信用社、农村商业银行、农村合作银行、村镇银行、外资银行、中德住房储蓄银行。 2. 数据结构:《中国银保监会银行业金融机构监管数据标准化规范(2019版)》(以下简称《规范》)共包括十个监管主题域、66张数据表、1852个数据项。数据表报送范围及数据项在《规范》中均有说明。 3. 数据来源:银行机构根据《规范》要求报送除理财业务域以外的九个监管主题域,从行内相关信息系统中获取数据,其中信息系统包括但不限于以下系统:核心业务系统、信贷系统、国结系统、票据系统、人力资源等。理财登记中心根据《规范》要求,向银保监会报送采集范围内的数据。各报数单位现有信息系统无法满足数据填报需求时,应及时采取措施,完善信息系统建设,并制定具体工作方案计划,以逐步达到数据报送要求。 4. 数据采集:银行机构首次按本《规范》集中报送数据时,公共信息、客户信息、信贷管理等相关数据表报送采集时间段内存续数据,账户类及交易明细类数据报送时间段内的全量数据。银行机构持续报数时,公共信息、客户信息相关数据表报送采集时间段内存续全量数据。理财登记中心按照理财业务相关数据表的采集要求报送数据。报送账户、借据全量数据时,采集时间段内结清、未结清,销户、未销户都应上报。 5.数据校验:银行机构按照数据检核规则报送数据。首次集中报送时,银行机构按照数据检核规则完成对报送数据的整改工作。持续报送时,银行机构应在一个报送周期内完成对不符合校验规则数据的整改和入库。 6.数据分层存储:所有采集数据分层存储在银保监会(或其派出机构)和报数机构。每批次数据采集时,报数机构将全部数据存至本机构存储平台,并按照《规范》要求,将其中部分数据报送至银保监会(或其派出机构)。存至本机构的数据要单独存放、隔离管理,并建立安全可靠的传输通道和保障机制,支撑银保监会数据调阅与应用。存储平台中的数据,未经银保监会许可,不得导出、拷贝和删改。 7. 关联数据项:不同表存在数据项名称、填报内容定义相同的数据项时,应保证所填数据在这些表格中一致。例如:不同表的客户统一编号、工号、合同号应保持表间一致。“备注”栏所列“关联数据项”意为表之间数据项存在相关关系,用于指导银行机构填报存在相关关系的数据及监管查找关联数据之用。 8. 银行自定义数据项:由于银行机构业务和信息系统的差异性,规范中一些数据数据项填报要求注明由银行自定义,此类数据数据项报送应注意使用中文字典或中文描述,避免使用英文或代码表示。对于《规范》中已经列出数据项值的数据项,严格依照标准中已有的分类上报。 9. 敏感信息处理:对于客户隐私均在备注栏内做了注解,分为“隐私,暂不取”、“隐私,银行机构变形”两种情况。对于“隐私,暂不取”数据项,保留在银行机构,作为可追索数据项;对于“隐私,银行机构变形”数据项,按照以下规则进行变形: (1)个人件号码: 若件号码中有英文字母,应先统一转换成大写英文字母; 变形后的件号码(38字节) = 件号码前6字节(6个英文字符/数字,或2个汉字,或1个汉字+3个英文字符/数字) + MD5(件号码全文UTF-8编码)(32字符,英文按小写输出),若件号码为空,则按空值报送。 例: 18位公民身份号码:33010219801212031X,变形后: 33010268162287691742b48cbc3ae8b70650a7 15位公民身份号码:330102801212031,变形后: 330102b88ce0d0e99298c224409414db399920 军官证/武警部队警官证:参字第1234567号,变形后: 参字3d0b11c17f6130dbd8502a416a7935ef 护照:E12345678,变形后:E12345d02f3cf86bb402a904f98df6373eb1ac (2)包含个人件号码的客户统一编号: 若件号码中有英文字母,应先统一转换成大写英文字母; 将件号码部分用件号码全文UTF-8编码的MD5杂凑值替换,其余部分不变。 (3)客户名称和所有对方户名信息: 三个汉字以内(包含三个汉字)的名称,做有限暴露方式的脱敏处理,只保留最后一个字,其余长度的名称不变形。银行机构员工和业务办理人员、自然人股东、单位负责人姓名不变形。 10. 数据约束:数据结构备注中PK为监管部门作为唯一性约束的参考条件,含有多个PK的,表示联合主键的参考,并不作为主外键唯一性约束的条件,可根据数据实际使用用途情况作出调整。 11. 数据项报送:《规范》中所有数据项均作为必填项对待,确实无法对应的数据项应报监管部门备案,并参照以下处理:①未开办此类业务,则无须报送;②已经开办此类业务,但需要一次性录入索引类数据,应当在实施过程中另行建表维护或对源系统进行技术改造。 12. 数据格式:报送数据若为字符串,则字符串中不能包含\n、\r、双引号等控制字符和转义字符,且字符串首尾不能包含空格。报送数据若为浮点数,则必须为123.789形式,前后不可补0、补+号。报送数据若为整数,则必须为123456形式,数值前不可补0、补+号,数值后不能带小数点。 13. 拆分原则:明确采集分支机构数据的银行机构,由总行按照一级分行进行数据拆分,并由一级分行报送属地银监局。若多个一级分行归属同一银监局管辖区域,则应由多个一级分行分别独立报送。数据拆分应当以满足交易描述的完整性为基本原则,账户归属地、业务发生地不在一个一级分行的,归属地、发生地应当分别报送。 14. 标准引用:下列标准中的条款通过本规范的引用而成为本规范的条款。凡是注日期的引用文件,其随后所有的修改单(不包括勘误的内容)或修订版均不适用于本规范,然而,鼓励各方研究是否可使用这些文件的最新版本。凡是不注日期的引用文件,其最新版本适用于本规范。 银保监会《金融机构代码编码规则》 ISO/IEC 10646 Information Technology -- Universal Coded Character Set (UCS) GB 32100-2015 法人和其他组织统一社会信用代码编码规则 GB 11714-1997 全国组织机构代码编制规则 GB 11643-1999 公民身份号码 GB/T 2261-2003 个人基本信息分类与代码 GB/T 4754 国民经济行业分类 GB/T 7408-2005 数据元和交换格式 信息交换 日期和时间表示法(ISO 8601:2000,IDT) GB/T 12406-2008 表示货币和资金的代码(ISO 4217:2001,IDT) GB/T 18142-2000 信息技术 数据元素值格式记法(ISO/IEC 14957:1996,IDT) GB/T 4658-2006 学历代码 GB/T 8561-2001 专业技术职务代码 GB/T 2659-2000 世界各国和地区名称代码

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

如果皮卡会coding

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值