登录
首页 >  Golang >  Go问答

如何将字符串转换为 google.protobuf.Timestamp?

来源:stackoverflow

时间:2024-04-07 15:30:37 350浏览 收藏

今天golang学习网给大家带来了《如何将字符串转换为 google.protobuf.Timestamp?》,其中涉及到的知识点包括等等,无论你是小白还是老手,都适合看一看哦~有好的建议也欢迎大家在评论留言,若是看完有所收获,也希望大家能多多点赞支持呀!一起加油学习~

问题内容

我有一个 go 字符串 x := "2020-09-01t21:46:43z"

这是我的 protobuf3:

message MyMessage {
  google.protobuf.Timestamp mytimestamp = 1;
}

如何将此字符串 x 转换为 google.protobuf.timestamp


解决方案


使用 ptypes 包,它具有与 protobuf 类型相互转换的帮助程序。

有两个功能可以帮助您:

ptypes.Timestamp:将 timestamp 转换为 time.time

func timestamp(ts *timestamppb.timestamp) (time.time, error)

调用timestamppb.new函数。这会将 time.time 转换为 timestamp

func timestamppb.new(t time.time) *timestamppb.timestamp

请注意,两者都处理 time.Time,即标准库中的时间类型。您首先需要使用 time.Parse 将字符串解析为 time.time

把它们放在一起我们有:

package main

import (
    "fmt"
    "time"
    "google.golang.org/protobuf/types/known/timestamppb"
)

func main() {

    t, err := time.Parse(time.RFC3339, "2020-09-01T21:46:43Z")
    if err != nil {
        panic(err)
    }
    
    pb := timestamppb.New(t)

    fmt.Println(pb)
}

本篇关于《如何将字符串转换为 google.protobuf.Timestamp?》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于Golang的相关知识,请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>