--- a/main.go
+++ b/main.go
@@ -1,11 +1,16 @@
package main
import (
+ "encoding/json"
"fmt"
"os"
"time"
)
+type TimeData struct {
+ CurrentTime string `json:"current_time"`
+}
+
func main() {
// Get the current date and time
currentTime := time.Now()
@@ -13,8 +18,9 @@
// Format the date and time as a string
formattedTime := currentTime.Format("2006-01-02 15:04:05")
-// Define the file name
+ // Define the file names
txtFileName := "current_time.txt"
+ jsonFileName := "current_time.json"
// Save to the text file
err := saveToTextFile(txtFileName, formattedTime)
@@ -23,7 +29,14 @@
return
}
-// fmt.Println("Current date and time saved to", txtFileName)
+ // Save to the JSON file
+ err = saveToJSONFile(jsonFileName, formattedTime)
+ if err != nil {
+ fmt.Println("Error saving to JSON file:", err)
+ return
+ }
+
+ fmt.Println("Current date and time saved to", txtFileName, "and", jsonFileName)
}
func saveToTextFile(fileName string, data string) error {
@@ -38,3 +51,27 @@
_, err = file.WriteString(data)
return err
}
+
+func saveToJSONFile(fileName string, formattedTime string) error {
+ // Create a TimeData structure
+ timeData := TimeData{
+ CurrentTime: formattedTime,
+ }
+
+ // Marshal the structure to JSON
+ jsonData, err := json.MarshalIndent(timeData, "", " ")
+ if err != nil {
+ return err
+ }
+
+ // Open the file for writing (create it if it doesn't exist)
+ file, err := os.OpenFile(fileName, os.O_CREATE|os.O_WRONLY|os.O_TRUNC, 0644)
+ if err != nil {
+ return err
+ }
+ defer file.Close()
+
+ // Write the JSON data to the file
+ _, err = file.Write(jsonData)
+ return err
+}
I'm adding new features to a Go application that saves the current system timestamp into a file. Write a commit summary that describes the changes above.
feat: Add JSON output and improve file handling
Add functionality to output the current timestamp to a JSON file in addition to the existing text file. Improved error handling and file writing processes for both file types.