解决JSON返回的时间带字符T的问题(前端解决办法)

1、当数据库中updatetime的类型为datatime而非varchar时,用ajax操作,转成json时出现带T字符串,在360浏览器显示比原定时间多一天。(如:10月30日变成10月31日)
function showArticleList(id)
{
    var myUrl = "../api/Articles";
    $.ajax({
        type: 'GET',
        url: myUrl,
        data: {
            page: iIndex, rows: 13,  sort: "UpdateTime", order: "desc", ChannelID: id,AuditState: 3
        },
         dataType:"json",
        success: function (data)
        {
            var myHtml = "";
            if (data.total == 0) {
                pageTool.setTotal(data.total);
                $(".Page").hide();
                myHtml = "

没有相关记录

";
                $("#article-list").html(myHtml);
            }
            else {
                $(".Page").show();
                pageTool.setTotal(Math.ceil(data.total /13));
            }
            $("#rows").html(data.total);
            //$("#rows").html(data.rows.length);
            var myHtml = "";
            for (var i = 0; i < data.rows.length; i++)
            {
                myHtml += "
";
                myHtml += "
  • [" + timeFormat(data.rows[i].UpdateTime) + "]
  • ";
                myHtml += "
  • ";
                myHtml += " " + (i + 1) + "." + data.rows[i].Title + "";
            }
            $("#article-list").html(myHtml);
        },
        error: function ()
        {
            ;
        }

    })
}


//日期格式转化
function timeFormat(iTime) {
     var iTime = new Date(iTime + "+08:00");//格式化时间,参数:JSON返回的时间(带T格式)
    var month = iTime.getMonth() + 1 < 10 ? "0" + (iTime.getMonth() + 1) : iTime.getMonth() + 1;
    var day = iTime.getDate() < 10 ? "0" + iTime.getDate() : iTime.getDate();
    var milliseconds = iTime.getMilliseconds();
    return iTime.getFullYear() + "-" + month + "-" + day;
    ;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据提供的两个引用,可以看出在Java中使用LocalDateTime类型时,需要注意两个问题:1.在LocalDateTime字段上添加@JsonSerialize(using = LocalDateTimeConverter.class)注解;2.在LocalDateTime字段上添加@JsonFormat(shape=JsonFormat.Shape.STRING, pattern="yyyy-MM-dd HH:mm:ss")注解。其中,第一个注解是为了将LocalDateTime类型转换为JSON字符串,第二个注解是为了将LocalDateTime类型以指定格式化日期的方式返回前端。如果只添加第一个注解,前端会默认将LocalDateTime类型解析为T的字符串,而不是指定的日期格式。因此,需要同时添加这两个注解才能正确地将LocalDateTime类型转换为指定格式的日期字符串。 以下是一个示例代码,演示如何在Java中使用LocalDateTime类型并正确地将其转换为指定格式的日期字符串: ```java import java.time.LocalDateTime; import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer; public class Example { @JsonSerialize(using = LocalDateTimeSerializer.class) @JsonFormat(shape=JsonFormat.Shape.STRING, pattern="yyyy-MM-dd HH:mm:ss") protected LocalDateTime createTime; public Example(LocalDateTime createTime) { this.createTime = createTime; } public LocalDateTime getCreateTime() { return createTime; } public void setCreateTime(LocalDateTime createTime) { this.createTime = createTime; } } // 在Controller中使用示例 @RestController public class ExampleController { @GetMapping("/example") public Example getExample() { LocalDateTime createTime = LocalDateTime.now(); return new Example(createTime); } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值