Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/uniplaces/carbon
Carbon for Golang, an extension for Time
https://github.com/uniplaces/carbon
Last synced: about 2 hours ago
JSON representation
Carbon for Golang, an extension for Time
- Host: GitHub
- URL: https://github.com/uniplaces/carbon
- Owner: uniplaces
- License: apache-2.0
- Created: 2016-08-03T10:55:52.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2024-01-17T04:35:27.000Z (12 months ago)
- Last Synced: 2025-01-12T08:00:05.415Z (3 days ago)
- Language: Go
- Homepage:
- Size: 224 KB
- Stars: 776
- Watchers: 47
- Forks: 56
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-go - carbon - Simple Time extension with a lot of util methods, ported from PHP Carbon library. (Date and Time / Search and Analytic Databases)
- awesome-github-star - carbon
- go-awesome - Carbon - Go implementation of the Carbon time processing library (Open source library / Appointment Time)
- awesome-go - carbon - Carbon for Golang, an extension for Time - ★ 263 (Date and Time)
- awesome-go-extra - carbon - 08-03T10:55:52Z|2022-04-28T12:43:00Z| (Date and Time / Advanced Console UIs)
README
Carbon
======
[![Build Status](https://github.com/uniplaces/carbon/actions/workflows/pull_request.yml/badge.svg)](https://github.com/uniplaces/carbon/actions/workflows/pull_request.yml)
[![Go Report Card](https://goreportcard.com/badge/github.com/uniplaces/carbon)](https://goreportcard.com/report/github.com/uniplaces/carbon)
[![codecov](https://codecov.io/gh/uniplaces/carbon/branch/master/graph/badge.svg)](https://codecov.io/gh/uniplaces/carbon)
[![GoDoc](https://godoc.org/github.com/uniplaces/carbon?status.svg)](https://godoc.org/github.com/uniplaces/carbon)
[![License](http://img.shields.io/:license-apache-blue.svg)](http://www.apache.org/licenses/LICENSE-2.0.html)A simple extension for [Time](https://golang.org/pkg/time/#Time) based on PHP's [Carbon](http://carbon.nesbot.com) library.
__Features:__
* [Time](https://golang.org/pkg/time/#Time) is embedded into Carbon (provides access to all of [Time](https://golang.org/pkg/time/#Time)'s functionality)
* Supports addition and subtraction of dates
* Provides methods to compare dates
* Supports date formatting in common formats
* Easily calculate difference between dates
* Ease testing with dates by using `carbon.Freeze()` and `carbon.Now()`__To do:__
* Implement all localization features as in Carbon
* Improve the code style to be more idiomatic Go## Getting started
Install Carbon:
```
go get github.com/uniplaces/carbon
```Add to your imports to start using Carbon
```go
import "github.com/uniplaces/carbon"
```## Examples
A simple example to get you started:
```go
package mainimport (
"fmt"
"time""github.com/uniplaces/carbon"
)func main() {
fmt.Printf("Right now is %s\n", carbon.Now().DateTimeString())today, _ := carbon.NowInLocation("America/Vancouver")
fmt.Printf("Right now in Vancouver is %s\n", today)fmt.Printf("Tomorrow is %s\n", carbon.Now().AddDay())
fmt.Printf("Last week is %s\n", carbon.Now().SubWeek())nextOlympics, _ := carbon.CreateFromDate(2016, time.August, 5, "Europe/London")
nextOlympics = nextOlympics.AddYears(4)
fmt.Printf("Next olympics are in %d\n", nextOlympics.Year())if carbon.Now().IsWeekend() {
fmt.Printf("Party time!")
}
}
```You can also check the `examples/` folder for more examples.
## Contributing
Please feel free to make suggestions, create issues, fork the repository and send pull requests!## Licence
Copyright 2016 UNIPLACESLicensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License athttp://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.