时间戳转换成时间

//获得当前时间戳,long类型

long timeStamp = System.currentTimeMillis();

//要转换成的时间格式

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 

String sd = sdf.format(new Date(timeStamp)); //时间戳转换成时间

@GetMapping(value = "/chats/{chatId}/messages")
public Result getBeforeMessages(@PathVariable("chatId") Long chatId,@RequestParam("maxCreatedAt") Long maxCreatedAt, HttpServletRequest request){...}

得这样访问 127.0.0.1:8080/chats/3/messages?maxCreatedAt=1537703899000

如果想这样访问 127.0.0.1:8080/chats/3/messages?maxCreatedAt=2018-09-23 19:58:21

就得在springmvc中配置字符串转时间转换器,请求的字符串必须为“2018-09-23 19:58:21”这样

在controller中添加注解@InitBinder

/**
 * @Description: 将前端传递的字符串2018-09-23 19:58:21转换为Date类型
 * @Params [binder]
 * @return: void
 * @Date: 2018/9/25
 */
@InitBinder
public void initBinder(WebDataBinder binder){
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
    //严格限制日期转换
    sdf.setLenient(false);
    //true:允许输入空值,false:不能为空值
    binder.registerCustomEditor(.class,new CustomDateEditor(sdf,true));
}
public Result getBeforeMessages(@PathVariable("chatId") Long chatId,@RequestParam("maxCreatedAt") Date maxCreatedAt, HttpServletRequest request){。。。}

如果此时访问127.0.0.1:8080/chats/3/messages?maxCreatedAt=1537703899000会报400错误

 

 

<think>好的,用户问的是如何将时间戳1597313886000转换成具体的时间。首先,我需要确认这个时间戳是秒还是毫秒级的。通常来说,13位的时间戳是毫秒级的,10位的是秒级的。用户提供的这个时间戳是13位的,所以应该是毫秒级的。 然后,我需要考虑用户可能的使用场景。他们可能是在处理数据或者日志,需要将时间戳转换为可读的日期时间格式。比如在编程中处理时间数据,或者在数据库查询时转换时间戳。 接下来,用户的需求可能不仅仅是转换这一个时间戳,而是想了解转换的方法,以便自己以后可以操作。所以需要提供几种常见的方法,比如使用在线工具、编程语言转换或者数据库函数。 用户可能没有明确说明他们的技术背景,因此需要覆盖不同层次的解决方案。比如,非技术人员可以使用在线转换工具,而开发人员可能需要代码示例,比如Python、JavaScript或者SQL的转换方法。 还要注意时间戳的正确性。比如,检查时间戳是否在合理范围内。1597313886000转换成时间是2020年8月14日,如果用户得到的结果不符合预期,可能需要确认时间戳是否正确,或者是否应该除以1000转换秒级。 另外,用户可能遇到的问题包括时区差异。时间戳转换默认可能是UTC时间,而用户可能需要本地时间,比如中国的UTC+8。在代码示例中需要说明如何处理时区问题,比如在JavaScript中使用toLocaleString方法,或者在Python中设置时区。 还要考虑不同编程语言中的具体函数,比如Python的datetime.fromtimestamp()需要将毫秒转换为秒,而JavaScript的Date对象可以直接处理毫秒。同时提醒用户注意数据类型的精度问题,避免转换错误。 最后,总结关键点,强调确认时间戳的位数和时区处理的重要性,确保用户能够正确转换并应用到实际场景中。</think>要将 **1597313886000** 时间戳转换为可读时间,需要明确是 **秒级** 还是 **毫秒级** 时间戳。以下是详细转换方法及注意事项: --- ### **一、关键判断** - **时间戳长度**: - **13位** → 毫秒级(如 `1597313886000`) - **10位** → 秒级(如 `1597313886`) - **你的时间戳**:`1597313886000` 是 **13位**,属于 **毫秒级** --- ### **二、转换方法** #### **1. 手动计算** ```text (1597313886000 ÷ 1000) = 1597313886秒 对应UTC时间:2020-08-14 07:18:06 北京时区(UTC+8):2020-08-14 15:18:06 ``` #### **2. 使用在线工具** 推荐工具: - [Epoch Converter](https://www.epochconverter.com) - [Timestamp Convert](https://timestampconvert.com) - [站长工具-时间戳转换](https://tool.chinaz.com/tools/unixtime) --- ### **三、编程转换(代码示例)** #### **Python** ```python import datetime timestamp = 1597313886000 # 毫秒级需先转为秒 dt = datetime.datetime.fromtimestamp(timestamp / 1000) print(dt.strftime("%Y-%m-%d %H:%M:%S")) # 输出:2020-08-14 15:18:06(北京时间) ``` #### **JavaScript** ```javascript const timestamp = 1597313886000; const date = new Date(timestamp); console.log(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值