0

関数のstrptimeとdatetimeのデフォルトの出力フォーマットを変更しようとしています。

   def start_week_date(year, week):
        format_string = "%i %i 1" % (int(year),int(week))
        start = time.strptime(format_string, '%Y %W %w')
        print datetime.date(start.tm_year, start.tm_mon, start.tm_mday)
        return datetime.date(start.tm_year, start.tm_mon, start.tm_mday)

その出力は別のものに渡されています:

for date_oncall in date_range(start_week_date(year,week), start_week_date(year,week+1)):
    print date_oncall

def date_range(start_date, end_date):
    """Generator of dates in between"""
    if start_date > end_date:
        raise ValueError("Start date is before end date.")
    while True:
        yield start_date
        start_date = start_date + datetime.timedelta(days=1)
        if start_date >= end_date:
            break

デフォルトのフォーマットを変更して、月の日または月が10未満の場合、最初に「0」が表示されないようにするための洗練された方法はありますか?基本的に「03-05-2012」の代わりに「3-5-2012」を取得したいと思います。

提案を事前に感謝します。

よろしく、ヤクブ

4

2 に答える 2

4

dateオブジェクトには、strftime手動で形式を指定するためのメソッド、がありますが、必要なことを実行するオプションがありません。つまり、。の他の属性から文字列を自分で作成する必要がありますdate_oncall。良いニュースは、これは非常に簡単なことです。

>>> '{d.day}-{d.month}-{d.year}'.format(d=date_oncall)
'17-1-2010'
于 2012-02-10T12:03:56.020 に答える
0

このリンクを確認してください:

http://www.tutorialspoint.com/python/time_strftime.htm

を使用して

time.strftime(string[, format])

'%e'を使用して、先頭に「0」を付けずに日付形式を指定できます。

于 2012-02-10T11:53:03.920 に答える