JavaScript - 将时间戳转换为日期,然后转换回时间戳

时间:2016-08-08 09:10:54

标签: javascript mysql date utc

我的服务器应用程序返回一个UTC时间戳字符串。

现在我想将它转换为日期对象以获取本地日期时间,然后将该日期对象转换回时间戳以获取本地时间戳。

这似乎不起作用,因为输出的两个字符串相同

console.log(JSON.stringify(timestamp));
var date = new Date(timestamp*1000).getTime();
console.log(JSON.stringify(date));

我该如何解决这个问题?

3 个答案:

答案 0 :(得分:0)

您需要使用时间戳创建一个新的Date实例(我假设它已经是格式良好的日期对象)。您的代码将如下所示:

console.log(JSON.stringify(timestamp));
var date = new Date(timestamp);
console.log(JSON.stringify(date));

尝试一下,让我知道输出是否仍然相同。

答案 1 :(得分:0)

我认为这就是你需要的。 您需要获取当前时间,转换它并以您需要的格式将其发送回服务器。

var utcDate = 1470621520;
var localDate = new Date(utcDate);
console.log(localDate);

编辑根据评论,您可以将UTC时间转换为本地时区,

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

@Configuration
@EnableSwagger2
public class SwaggerConfig {
    @Bean
    public Docket api(){
        return new Docket(DocumentationType.SWAGGER_2)
            .select()
            .apis(RequestHandlerSelectors.any())
            .paths(PathSelectors.regex("/api/.*"))
            .build()
            .apiInfo(apiInfo());
    }

    @SuppressWarnings("deprecation")
    private ApiInfo apiInfo() {
        ApiInfo apiInfo = new ApiInfo(
            "My Project's REST API",
            "This is a description of your API.",
            "API TOS",
            "me@wherever.com",
            "API License",
            "API License URL", null
        );
        return apiInfo;
    }
}

这会自动将UTC转换为本地时区转换。

答案 2 :(得分:0)

这是我实际的操作方式。我有一个日期选择器,它给我一个这样的日期:2020年2月27日(sDate),一个时间选择器,给我这样的时间:16:15(sTime)。我想将其保存在unixtime中作为sUnixtime,然后稍后检索sUnixtime并转换回nDate和nTime以复制相同的视觉设计。这是代码:

要保存:

sEvent   = sDate + ' ' + sTime;
date_obj = new Date(sEvent);
sUnixtime = Date.parse(date_obj)/1000;

要转换回

let nUnixtime = new Date(sUnixtime * 1000);
let unixmonth = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"][nUnixtime.getMonth()];
let nDate     = nUnixtime.getDate() + ' ' + unixmonth + ', '+ nUnixtime.getFullYear();
let nTime     = nUnixtime.getHours() +':'+ nUnixtime.getMinutes();
console.log(nDate, 'time',nTime);