diff options
author | Xiao Pan <gky44px1999@gmail.com> | 2024-02-23 03:08:52 -0800 |
---|---|---|
committer | Xiao Pan <gky44px1999@gmail.com> | 2024-02-23 03:08:52 -0800 |
commit | dd78faaf40862bd1552ec36c41374b527f747284 (patch) | |
tree | b914f890c545db7168984f7bcc15cfc7c976c1d3 /sh/dateft | |
parent | c808bb6ee7f77f077308a1f06f63dbee6a928f6d (diff) |
Reorganize shell scripts into sh dir, consider in the future fsh will have different kinds of files
Diffstat (limited to 'sh/dateft')
-rwxr-xr-x | sh/dateft | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/sh/dateft b/sh/dateft new file mode 100755 index 0000000..b317474 --- /dev/null +++ b/sh/dateft @@ -0,0 +1,29 @@ +#!/bin/sh +# DATE From To + +while getopts cfF:t:T: opt; do + case $opt in + c) tz_from="Asia/Shanghai";; + f) tz_from="$(tzselect)";; + F) tz_from="$OPTARG";; + # one extra ',' at the end will not let `for tz in ...` loop one extra time? + t) for i in $(seq "$OPTARG"); do + tz_to="$(tzselect),$tz_to" + done;; + T) tz_to="$OPTARG,$tz_to";; + \?) exit 1;; + esac +done +shift $((OPTIND-1)) + +time_from="TZ=\"${tz_from:-$(readlink /etc/localtime | sed 's#.*/\(.*/.*\)$#\1#')}\" ${1:-now}" + +date -d "$time_from" +TZ="Asia/Shanghai" date -d "$time_from" +date -d "$time_from" -u +date -d "$time_from" +%s +[ "$tz_from" ] && [ "$tz_from" != "Asia/Shanghai" ] && TZ="$tz_from" date -d "$time_from" +IFS=',' +for tz in $tz_to; do + TZ="$tz" date -d "$time_from" +done |