Na linguagem Go, os pacotes de tempo fornecem funcionalidade para determinar e visualizar o tempo. A função MarshalText() na linguagem Go é usada para implementar a interface encoding.TextMarshaler . E a hora aqui é formatada no formato RFC 3339 junto com a precisão de sub-segundo anexada, se disponível. Além disso, essa função é definida no pacote de tempo. Aqui, você precisa importar o pacote “time” para usar essas funções.

Sintaxe:

func (t Time) MarshalText() ([]byte, error)

Aqui, “t” é o tempo declarado e dois valores do tipo “byte” e “erro” são retornados como saída neste método.

Valor de retorno: retorna uma fatia de byte que representa a codificação do receptor em texto codificado em UTF-8 e também retorna um erro ocorrido, mas se não houver erros, "nil" será retornado.

Exemplo 1:

// Golang program to illustrate the usage of
// Time.MarshalText() function
  
// Including main package
package main
  
// Importing fmt and time
import "fmt"
import "time"
  
// Calling main
func main() {
  
    // Defining t for MarshalText method
    t := time.Date(2001, 3, 6, 11, 45, 12, 03, time.UTC)
  
    // Calling MarshalText() method
    encoding, error := t.MarshalText()
  
    // Prints receiver's encoding
    fmt.Printf("Receiver's encoding: %v\n", encoding)
  
    // Prints error
    fmt.Printf("Error occurred: %v\n", error)
}

Saída:

Codificação do receptor: [50 48 48 49 45 48 51 45 48 54 84 49 49 58 52 53 58 49 50 46 48 48 48 48 48 48 48 48 51 90]
Ocorreu um erro: <nil>

Exemplo 2:

// Golang program to illustrate the usage of
// Time.MarshalText() function
  
// Including main package
package main
  
// Importing fmt and time
import "fmt"
import "time"
  
// Calling main
func main() {
  
    // Defining t for MarshalText method
    t := time.Date(2022, 67, 45, 89, 78, 90, 4353, time.UTC)
  
    // Calling MarshalText() method
    encoding, error := t.MarshalText()
  
    // Prints receiver's encoding
    fmt.Printf("Receiver's encoding: %v\n", encoding)
  
    // Prints error
    fmt.Printf("Error occurred: %v\n", error)
}

Saída:

Codificação do receptor: [50 48 50 55 45 48 56 45 49 55 84 49 56 58 49 57 58 51 48 46 48 48 48 48 48 52 51 53 51 90]
Ocorreu um erro: <nil>

Aqui, o “t” indicado no código acima tem valores que estão fora da faixa normal, mas são normalizados durante a conversão.