Das Problem hat nichts mit der bash an sich zu tun (bzw. lässt sich mit dieser allein auch nicht einfacher lösen). Der "normale" Unix
date Befehl bietet nun mal weniger Möglichkeiten als die GNU-Version die bei Linux Verwendung findet.
Pragmatische Lösung: Auf der Solaris-Kiste die GNU Coreutils installieren. Da sind dann neben
date noch etliche andere Tools in der GNU-"Eierwollmilchsau"-Edition verfügbar. Möglicherweise sind sie auch bereits installiert. Schon mal
gdate,
/opt/sfw/bin/date oder
/usr/local/bin/date probiert?
Ansonsten gibt es noch folgenden Trick, der genau auf der These "intern wird bestimmt mit sek gerechnet" basiert:
/usr/bin/truss /usr/bin/date 2>&1 | grep ^time | awk '{print $3}'
truss ist ein Debugger für Systemaufrufe. date holt sich die Zeit über
time(2), wie vermutet in Sekunden seit 1970. Mit grep und awk wird das Ergebnis noch optisch aufbereitet so dass nur noch der Rückgabewert des
time() Systemaufrufs übrig bleibt. Die Umlenkung 2>&1 ist nötig weil die truss-Ausgaben auf Standard Error geschrieben werden.