ミリ秒で日付を表示するようにPythonに依頼する組み込みの方法はありません。あなたは、所望の結果を得るために、文字列操作のビットを行う必要があります :
from dateutil.parser import parse
import datetime as DT
date = parse("2017-02-14T18:21:14.080+05:30")
microsecond = date.microsecond
millisecond = int(round(microsecond/1000))
print(str(date).replace('.{:06d}'.format(microsecond),
'.{:03d}'.format(millisecond)))
利回り
2017-02-14 18:21:14.080+05:30
は、ソリューションおよびミリ秒にマイクロを変換する方法の 議論についてはthis postを参照してください。 のいずれかの難点は、date.microsecond
が6 より小さい数字を返し、マイクロ秒が0の場合、一部のOSではstr(date)
がdrop the microseconds altogetherとなる可能性があることに注意してください。この は、 が3桁にフォーマットされたミリ秒で置き換えられる前に、マイクロ秒から6桁のフォーマットに苦労している理由の1つです。
上記のコードを使用すると、0秒にマイクロ秒をドロップするOSでは、 ミリ秒は表示されません。あなたは 3に小数点以下の桁数をフォーマットし常にショーミリ秒にしたい場合、あなたは最初から日付文字列を構築する必要があります:
from dateutil.parser import parse
import datetime as DT
date = parse("2017-02-14T18:21:14.080+05:30")
microsecond = date.microsecond
millisecond = round(microsecond/1000)
utcoffset = date.strftime('%z')
utcoffset_string = '{}:{}'.format(utcoffset[:-2], utcoffset[-2:])
print('{}{}{}'.format(date.strftime('%Y-%m-%dT%H:%M:%S'),
'.{:03d}'.format(millisecond),
utcoffset_string))
は、なぜあなたはそのは限り値が正確であるように印刷方法を気にしていますか? –
値は正しいですが、出力が供給されるプログラムにはこの方法が必要です。 –