JavaScript-Java日期格式转换

图片描述

前言

日期如何做比较,这还真让人头疼,如果能转换成数字来做比较那就好了……
很多时候,我们取到前端的日期并不是数据库里存的日期格式,很多情况下都是字符串的形式传过来的,可是数据库内存什么格式的都有,但是我自己的数据库内基本都是存时间戳的,于是就要涉及时间戳的转换问题,首先介绍一下,如何在Java定义时间戳。

Date aimTDate = (new Date());
Timestamp aimTimestamp = new Timestamp(aimTDate.getTime());
return aimTimestamp;

上面的代码,getTime的时候已经将当前时间改为了时间戳,时间戳其实就是一串数字:

时间戳

时间戳记或称为时间标记(英语:Timestamp)是指字符串或编码信息用于辨识记录下来的时间日期。国际标准为ISO 8601。
时间戳记的范例如下:
2016-12-25T00:15:22Z
2005-10-30 10:45 UTC
Sat Jul 23 02:16:57 2005
2016年12月25日 (日) 00:14 (UTC)

格式

JavaScript时间戳转换new Date(Timestamp)
然而,这样的时间格式,很难受,于是我们需要转换一下格式问题:

export function getDateFormat(dt) {
  dt.setHours(dt.getHours())
  var now = dt
  var y = now.getFullYear()
  var m = now.getMonth() + 1
  var d = now.getDate()
  return y + '-' + (m < 10 ? '0' + m : m) + '-' + (d < 10 ? '0' + d : d) + ' ' + now.toTimeString().substr(0, 8)
}

除此之外,我们可以通过字符串的拼接或者拆分,来进行格式的转换,这种思想比较有意思,就是假设,传过来的就是字符串,我们来处理字符串就好了。

function eduDateValidation() {
     var startDateParts = startDate.split('-');
     var endDateParts = endDate.split('-');
     var sDT = new Date(startDateParts[0],startDateParts[1],startDateParts[2]);
     var eDT = new Date(endDateParts[0],endDateParts[1],endDateParts[2]);
 }

其实关于时间戳的变化,大部分都是因为后端和前端,想要的不一样导致的,而我在自己写代码的时候,都是直接存时间戳的,这样,无论你要什么格式,自己去变换就好了,所以数据库里存的就是最全的信息,然后通过展示格式不同,进行不同的截取就好了,我之前还遇到了关于时间的另一个问题,就是

数据库存的时间比现实时间少8小时

其实网上的各种办法都是不太适应我目前的问题的,最主要的原因就是,我的配置问题,改一个字符串就能解决的问题,非要我设置修改数据库的时区,各种改数据库,然而没有任何用处,我来介绍一下我是如何解决的
我的是SpringBoot项目,在property文件设置一下时区就好了

serverTimezone=GMT%2B8

获取方式

前端获取这些内容的时候,有时候可以通过地址栏,这里介绍其中一种方式

获取GET里的值

例如:htttp:localhost:8080/pj?name=‘王五’
getQueryString(‘name’)=‘王五’

function getQueryString(name) {
	var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
	var r = window.location.search.substr(1).match(reg);
	if (r != null) {
		return decodeURIComponent(r[2]);
	}
	return '';
}

总结

图片描述
前端代码和后端都是紧密联系的,虽然总是转换来转换去,可是作为开发者,我真的是乐此不疲的,就好像那就话一样“子非鱼安知鱼之乐”,确实,如果不是真心觉得敲代码有意思,我还真的不能在没有任何开发任务的时候,自己有想做点什么项目的想法。
上述点有的是为了export到Vue项目里的,所以写法上有点不一样,慢慢的接触的语言多了,其实发现很多时候,语言都是大同小异的,如果不是一通则通,单纯的死记硬背是没有任何理解的,对于更高效更快捷的开发,是没有好处的,还有一点就是学会记笔记,我在项目上都是用word来记笔记的,平时自己写代码用markdown写得多一点,因为感觉上不像是在写文章,更像是在敲代码,作为程序员,多尝试新的事物总是好的,于是我试了一次markdown就开始一直使用markdown了。
时间还真让人头疼呀,在时间戳,在时间的存储上,你遇到过什么问题呢?欢迎来讨论一下吧!

©️2020 CSDN 皮肤主题: 代码科技 设计师:Amelia_0503 返回首页