Install
openclaw skills install cst-timeProvides methods and tools for obtaining local host CST (China Standard Time). Invoke when user needs to get current CST time, convert time zones, or work with China Standard Time in scripts and applications.
openclaw skills install cst-timeThis skill provides comprehensive guidance for obtaining and working with China Standard Time (CST), which is UTC+8 and used throughout mainland China. It covers various methods for getting local CST time, time zone conversions, and integration with different programming languages and systems.
CST Time skill helps in:
Time Zone Details:
Important Notes:
Get current system time (assumed to be CST):
Get-Date
Get CST time with explicit time zone:
[System.TimeZoneInfo]::ConvertTimeBySystemTimeZoneId([DateTime]::UtcNow, "China Standard Time")
Format CST time:
Get-Date -Format "yyyy-MM-dd HH:mm:ss"
Get current system time:
date
Get CST time explicitly:
TZ='Asia/Shanghai' date
Format CST time:
date +"%Y-%m-%d %H:%M:%S"
Get current system time:
date
Get CST time explicitly:
TZ='Asia/Shanghai' date
Get current CST time:
from datetime import datetime
import pytz
# Get current CST time
cst_tz = pytz.timezone('Asia/Shanghai')
cst_time = datetime.now(cst_tz)
print(f"Current CST time: {cst_time}")
print(f"Formatted: {cst_time.strftime('%Y-%m-%d %H:%M:%S')}")
Convert UTC to CST:
from datetime import datetime
import pytz
# Get UTC time
utc_time = datetime.utcnow().replace(tzinfo=pytz.UTC)
# Convert to CST
cst_time = utc_time.astimezone(pytz.timezone('Asia/Shanghai'))
print(f"UTC: {utc_time}")
print(f"CST: {cst_time}")
Convert any timezone to CST:
from datetime import datetime
import pytz
# Example: Convert New York time to CST
ny_tz = pytz.timezone('America/New_York')
cst_tz = pytz.timezone('Asia/Shanghai')
ny_time = datetime.now(ny_tz)
cst_time = ny_time.astimezone(cst_tz)
print(f"New York: {ny_time}")
print(f"CST: {cst_time}")
Get current CST time:
// Using Intl API
const cstTime = new Date().toLocaleString('zh-CN', {
timeZone: 'Asia/Shanghai',
hour12: false
});
console.log('Current CST time:', cstTime);
// Using moment-timezone (recommended)
const moment = require('moment-timezone');
const cstTime = moment().tz('Asia/Shanghai').format('YYYY-MM-DD HH:mm:ss');
console.log('Current CST time:', cstTime);
Convert UTC to CST:
const moment = require('moment-timezone');
const utcTime = moment().utc();
const cstTime = utcTime.tz('Asia/Shanghai').format('YYYY-MM-DD HH:mm:ss');
console.log('UTC:', utcTime.format());
console.log('CST:', cstTime);
Get current CST time:
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
// Get current CST time
ZonedDateTime cstTime = ZonedDateTime.now(ZoneId.of("Asia/Shanghai"));
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
System.out.println("Current CST time: " + cstTime.format(formatter));
Convert UTC to CST:
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.time.Instant;
// Get UTC time and convert to CST
Instant utcTime = Instant.now();
ZonedDateTime cstTime = utcTime.atZone(ZoneId.of("Asia/Shanghai"));
System.out.println("UTC: " + utcTime);
System.out.println("CST: " + cstTime);
Get current CST time:
package main
import (
"fmt"
"time"
)
func main() {
// Get current CST time
cstTime := time.Now().In(time.FixedZone("CST", int(8*3600)))
fmt.Println("Current CST time:", cstTime.Format("2006-01-02 15:04:05"))
}
Get current CST time:
using System;
// Get current CST time
TimeZoneInfo cstZone = TimeZoneInfo.FindSystemTimeZoneById("China Standard Time");
DateTime cstTime = TimeZoneInfo.ConvertTimeFromUtc(DateTime.UtcNow, cstZone);
Console.WriteLine($"Current CST time: {cstTime:yyyy-MM-dd HH:mm:ss}");
World Time API:
curl "http://worldtimeapi.org/api/timezone/Asia/Shanghai"
TimezoneDB API:
curl "http://api.timezonedb.com/v1/get-time-zone?key=YOUR_API_KEY&by=zone&zone=Asia/Shanghai"
Google Maps Time Zone API:
curl "https://maps.googleapis.com/maps/api/timezone/json?location=39.9042,116.4074×tamp=1331161200&key=YOUR_API_KEY"
Formula:
CST = UTC + 8 hours
Python Example:
from datetime import datetime, timedelta
# UTC to CST
utc_time = datetime.utcnow()
cst_time = utc_time + timedelta(hours=8)
print(f"UTC: {utc_time}")
print(f"CST: {cst_time}")
Formula:
UTC = CST - 8 hours
Python Example:
from datetime import datetime, timedelta
# CST to UTC
cst_time = datetime.now()
utc_time = cst_time - timedelta(hours=8)
print(f"CST: {cst_time}")
print(f"UTC: {utc_time}")
Common conversions:
| Time Zone | UTC Offset | CST Offset | Conversion |
|---|---|---|---|
| EST (Eastern) | UTC-5 | +13 hours | EST + 13 = CST |
| PST (Pacific) | UTC-8 | +16 hours | PST + 16 = CST |
| GMT (Greenwich) | UTC+0 | +8 hours | GMT + 8 = CST |
| JST (Japan) | UTC+9 | -1 hour | JST - 1 = CST |
| AEST (Australia) | UTC+10 | -2 hours | AEST - 2 = CST |
ISO 8601 Format:
2026-02-10T21:30:45+08:00
Standard Format:
2026-02-10 21:30:45
Chinese Format:
2026年2月10日 21:30:45
Time Only:
21:30:45
Date Only:
2026-02-10
Python:
from datetime import datetime
cst_time = datetime.now()
formats = {
'ISO 8601': cst_time.isoformat(),
'Standard': cst_time.strftime('%Y-%m-%d %H:%M:%S'),
'Chinese': cst_time.strftime('%Y年%m月%d日 %H:%M:%S'),
'Time only': cst_time.strftime('%H:%M:%S'),
'Date only': cst_time.strftime('%Y-%m-%d')
}
for name, formatted in formats.items():
print(f"{name}: {formatted}")
JavaScript:
const moment = require('moment-timezone');
const cstTime = moment().tz('Asia/Shanghai');
const formats = {
'ISO 8601': cstTime.format(),
'Standard': cstTime.format('YYYY-MM-DD HH:mm:ss'),
'Chinese': cstTime.format('YYYY年MM月DD日 HH:mm:ss'),
'Time only': cstTime.format('HH:mm:ss'),
'Date only': cstTime.format('YYYY-MM-DD')
};
for (const [name, formatted] of Object.entries(formats)) {
console.log(`${name}: ${formatted}`);
}
Recommendations:
Recommendations:
Recommendations:
Recommendations:
Example: Schedule a task at specific CST time:
from datetime import datetime, timedelta
import pytz
# Target CST time
target_cst = datetime(2026, 2, 10, 22, 0, 0, tzinfo=pytz.timezone('Asia/Shanghai'))
# Calculate time until task
now = datetime.now(pytz.timezone('Asia/Shanghai'))
time_until = target_cst - now
print(f"Task scheduled for: {target_cst}")
print(f"Time until task: {time_until}")
Example: Log events with CST timestamps:
import logging
from datetime import datetime
import pytz
# Configure logging with CST time
cst_tz = pytz.timezone('Asia/Shanghai')
logging.basicConfig(
level=logging.INFO,
format='%(asctime)s - %(levelname)s - %(message)s',
datefmt='%Y-%m-%d %H:%M:%S'
)
# Log event
logging.info("Event occurred at CST time")
Example: Display current CST time on a webpage:
<!DOCTYPE html>
<html>
<head>
<title>CST Time Display</title>
</head>
<body>
<div id="cst-time">Loading...</div>
<script>
function updateCSTTime() {
const options = {
timeZone: 'Asia/Shanghai',
hour12: false,
year: 'numeric',
month: '2-digit',
day: '2-digit',
hour: '2-digit',
minute: '2-digit',
second: '2-digit'
};
const cstTime = new Date().toLocaleString('zh-CN', options);
document.getElementById('cst-time').textContent = 'CST: ' + cstTime;
}
// Update every second
setInterval(updateCSTTime, 1000);
updateCSTTime();
</script>
</body>
</html>
Example: Convert user-provided time to CST:
from datetime import datetime
import pytz
from dateutil import parser
# User input time (could be any format)
user_input = "2026-02-10 14:30:00"
# Parse user input
user_time = parser.parse(user_input)
# Assume user time is in their local timezone
user_tz = pytz.timezone('America/New_York')
user_time = user_tz.localize(user_time)
# Convert to CST
cst_tz = pytz.timezone('Asia/Shanghai')
cst_time = user_time.astimezone(cst_tz)
print(f"User time: {user_time}")
print(f"CST time: {cst_time}")
| Issue | Possible Cause | Solution |
|---|---|---|
| Wrong time displayed | System time zone not set to CST | Change system time zone to Asia/Shanghai |
| Time off by 1 hour | Daylight saving time confusion | Remember CST doesn't observe DST |
| Time conversion errors | Incorrect time zone ID | Use Asia/Shanghai instead of CST |
| Time not updating | Caching or stale data | Clear cache and refresh |
| Time display issues | Format string errors | Verify format string syntax |
Verify system time zone:
Test time zone conversions:
Monitor time-related logs:
Working with CST (China Standard Time) requires understanding of time zone handling, proper conversion methods, and careful attention to formatting and display. By following the guidance in this skill, you can:
Remember that CST is UTC+8 year-round and does not observe daylight saving time, which simplifies time handling compared to many other time zones. Always test time-related functionality thoroughly and handle edge cases appropriately.