diff options
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 | 
