如何在Javascript中测试google.protobuf.Timestamp?

如何在Javascript中测试google.protobuf.Timestamp?,javascript,protocol-buffers,protobuf.js,Javascript,Protocol Buffers,Protobuf.js,使用Scala中创建的API中的原型文件。我的代码在JS中,正在尝试测试我的代码,并出现以下错误: AssertionError [ERR_ASSERTION]: invalid return value: post[0].lastPublishedDate: Date expected 尝试过但没有成功: lastPublishedDate:{seconds:,nano:},日期是日期的toISOString(),如文档()中所述 lastPublishedDate:new Date().t

使用Scala中创建的API中的原型文件。我的代码在JS中,正在尝试测试我的代码,并出现以下错误:

AssertionError [ERR_ASSERTION]: invalid return value: post[0].lastPublishedDate: Date expected
尝试过但没有成功:

  • lastPublishedDate:{seconds:,nano:}
    ,日期是日期的toISOString(),如文档()中所述
  • lastPublishedDate:new Date().toISOString()
  • 只需将2019-02-18T14:18:45.346Z(当我调用它时,API似乎会返回)作为日期
  • 对我来说似乎什么都不管用

    我在网上唯一能找到的其他参考资料是: 而且它似乎也没有解决


    有人在JS中使用过google.protobuf.Timestamp吗?

    显然这是一个常规的JS日期(
    new date()
    ),比如可以从错误消息中看出…

    您可以使用此函数基于此
    google/protobuf/Timestamp.proto

    const getDate = ()=>{
        if (window.proto) {
            const proto = window.proto;
            const timeMS = Date.now();
            const timestamp = new proto.google.protobuf.Timestamp()
            timestamp.setSeconds(timeMS / 1000);
            timestamp.setNanos((timeMS % 1000) * 1e6);
            return timestamp;
        }
    }
    
    或者你也可以使用这个:

    const date = new proto.google.protobuf.Timestamp()
    date.fromDate(new Date())
    
    要获取JS日期,您可以使用
    proto.google.protobuf.Timestamp


    希望它能帮助您。

    setSeconds
    setNanos
    由于某种原因对我不起作用,但是
    fromDate
    确实起作用。谢谢我也是,这个答案救了我一天。非常感谢!