Skip to main content
added 194 characters in body
Source Link
Stéphane Chazelas
  • 585.1k
  • 96
  • 1.1k
  • 1.7k

If by ksh, you mean ksh93:

$ t=093500
$ DATEMSK=/dev/stdin <<<%H%M%S printf "%(%F %T)T\n" "$t"
2018-05-17 09:35:00

Or:

$ printf '%(%F)T %.8s\n' now "${t//??/\0:}"
2018-05-17 09:35:00

Or portably (shells of Bourne or csh families or fish)

$ date +"%Y-%m-%d $t" | sed 's/\(..\)\(..\)$/:\1:\2/'
2018-05-17 09:35:00

(for rc-like shells, use date +'%Y-%m-%d '$t instead)

If by ksh, you mean ksh93:

$ t=093500
$ DATEMSK=/dev/stdin <<<%H%M%S printf "%(%F %T)T\n" "$t"
2018-05-17 09:35:00

Or:

$ printf '%(%F)T %.8s\n' now "${t//??/\0:}"
2018-05-17 09:35:00

If by ksh, you mean ksh93:

$ t=093500
$ DATEMSK=/dev/stdin <<<%H%M%S printf "%(%F %T)T\n" "$t"
2018-05-17 09:35:00

Or:

$ printf '%(%F)T %.8s\n' now "${t//??/\0:}"
2018-05-17 09:35:00

Or portably (shells of Bourne or csh families or fish)

$ date +"%Y-%m-%d $t" | sed 's/\(..\)\(..\)$/:\1:\2/'
2018-05-17 09:35:00

(for rc-like shells, use date +'%Y-%m-%d '$t instead)

added 97 characters in body
Source Link
Stéphane Chazelas
  • 585.1k
  • 96
  • 1.1k
  • 1.7k

If by ksh, you mean ksh93:

$ t=093500
$ DATEMSK=/dev/stdin <<<%H%M%S printf "%(%F %T)T\n" 093500"$t"
2018-05-17 09:35:00

Or:

$ printf '%(%F)T %.8s\n' now "${t//??/\0:}"
2018-05-17 09:35:00

If by ksh, you mean ksh93:

$ DATEMSK=/dev/stdin <<<%H%M%S printf "%(%F %T)T\n" 093500
2018-05-17 09:35:00

If by ksh, you mean ksh93:

$ t=093500
$ DATEMSK=/dev/stdin <<<%H%M%S printf "%(%F %T)T\n" "$t"
2018-05-17 09:35:00

Or:

$ printf '%(%F)T %.8s\n' now "${t//??/\0:}"
2018-05-17 09:35:00
Source Link
Stéphane Chazelas
  • 585.1k
  • 96
  • 1.1k
  • 1.7k

If by ksh, you mean ksh93:

$ DATEMSK=/dev/stdin <<<%H%M%S printf "%(%F %T)T\n" 093500
2018-05-17 09:35:00