<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DZone Snippets: localtime code</title>
    <link>http://snippets.dzone.com/posts</link>
    <pubDate>Fri, 29 Aug 2008 16:34:51 GMT</pubDate>
    <description>DZone Snippets: localtime code</description>
    <item>
      <title>Another simple datetime+struct_time class</title>
      <link>http://snippets.dzone.com/posts/show/1694</link>
      <description>I had shown how datetime can be used in python 2.2&lt;br /&gt;in a &lt;a href=http://www.bigbold.com/snippets/posts/show/1614&gt;previous snippet&lt;/a&gt;. Still, it's sometimes too big.&lt;br /&gt;&lt;br /&gt;Here's a minimal implementation. It works like both&lt;br /&gt;datetime and stuct_time (as returned by localtime() and gmtime()).&lt;br /&gt;&lt;code&gt;&lt;br /&gt;import time&lt;br /&gt;&lt;br /&gt;class datetime(object):&lt;br /&gt;    def __init__(self, *argv):&lt;br /&gt;        self.t = time.struct_time(argv+(0,)*(9-len(argv)))    # append to length 9 &lt;br /&gt;    def __getattr__(self, name):&lt;br /&gt;        try:&lt;br /&gt;            i = ['year', 'month', 'day', 'hour', 'minute', 'second', 'weekday'].index(name)&lt;br /&gt;            return self.t[i]&lt;br /&gt;        except:&lt;br /&gt;            return getattr(self.t, name)&lt;br /&gt;    def __len__(self): return len(self.t)&lt;br /&gt;    def __getitem__(self, key): return self.t[key]&lt;br /&gt;    def __repr__(self): return repr(self.t)&lt;br /&gt;    def now(self=None):&lt;br /&gt;        return datetime(*time.localtime())&lt;br /&gt;    now = staticmethod(now)&lt;br /&gt;    def strftime(self, fmt="%Y-%m-%d %H:%M:%S"):&lt;br /&gt;        return time.strftime(fmt, self.t)&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Here's its usage&lt;br /&gt;&lt;code&gt;&lt;br /&gt;# here it works like datetime.datetime()&lt;br /&gt;&gt;&gt;&gt; t = datetime.now()&lt;br /&gt;&gt;&gt;&gt; t.year, t.month, t.day&lt;br /&gt;(2006, 3, 13)&lt;br /&gt;&gt;&gt;&gt; t.hour, t.minute, t.second&lt;br /&gt;(23, 3, 28)&lt;br /&gt;&lt;br /&gt;# but also works like localtime()&lt;br /&gt;&gt;&gt;&gt; t&lt;br /&gt;(2006, 3, 13, 23, 3, 28, 0, 72, -1)&lt;br /&gt;&gt;&gt;&gt; t.tm_year, t[0]&lt;br /&gt;(2006, 2006)&lt;br /&gt;&gt;&gt;&gt; mktime(t)&lt;br /&gt;1142265808.0&lt;br /&gt;&lt;br /&gt;# good default for strftime (= ctime)&lt;br /&gt;&gt;&gt;&gt; t.strftime()&lt;br /&gt;'2006-03-13 23:03:28'&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;</description>
      <pubDate>Mon, 13 Mar 2006 21:08:56 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/1694</guid>
      <author>korakot (Korakot Chaovavanich)</author>
    </item>
    <item>
      <title>Time module</title>
      <link>http://snippets.dzone.com/posts/show/994</link>
      <description>&lt;code&gt;&lt;br /&gt;&gt;&gt;&gt; from time import time, localtime, strftime&lt;br /&gt;&gt;&gt;&gt; time()             # seconds since the epoch&lt;br /&gt;1135156165.5569999&lt;br /&gt;&gt;&gt;&gt; localtime()[0:3]   # date&lt;br /&gt;(2005, 12, 21)&lt;br /&gt;&gt;&gt;&gt; localtime()[3:6]   # time&lt;br /&gt;(16, 9, 27)&lt;br /&gt;&gt;&gt;&gt; strftime("%d %b %Y %H:%M:%S", localtime())&lt;br /&gt;'21 Dec 2005 16:09:27'&lt;br /&gt;&gt;&gt;&gt;&lt;/code&gt;&lt;br /&gt;See more detail in &lt;a href=http://docs.python.org/lib/module-time.html&gt;python documentation&lt;/a&gt;</description>
      <pubDate>Wed, 21 Dec 2005 20:08:55 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/994</guid>
      <author>korakot (Korakot Chaovavanich)</author>
    </item>
  </channel>
</rss>
