<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic IF statement to format/edit time in Data Management Questions</title>
    <link>https://community.esri.com/t5/data-management-questions/if-statement-to-format-edit-time/m-p/313792#M17962</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I am looking to populate a time filed in a dataset (Field calculator) with time increments resulting in every even 30 second intervals. The current format is HH:MM:SS Where any seconds value less than 30 would be rounded down to :00 and any seconds value greater than 30 would also round down to :30.&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I.e. I want column A to become Column B&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; A&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; B&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;6:40:34 a.m. 6:40:30 a.m.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;6:41:04 a.m. 6:41:00 a.m.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;6:41:34 a.m. 6:41:30 a.m.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;6:42:04 a.m. 6:42:00 a.m.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;6:42:34 a.m. 6:42:30 a.m.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;6:43:04 a.m. 6:43:00 a.m.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;6:44:04 a.m. 6:44:00 a.m.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;6:44:34 a.m. 6:44:30 a.m.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;6:45:04 a.m. 6:45:00 a.m.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I already have a time column, but the seconds poriton of the time is not in even 30 intervals.&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;How would i achieve this in field calculator?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Also I would like to know how to batch process these as well.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanx in advance!!&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 15 Aug 2011 22:42:34 GMT</pubDate>
    <dc:creator>J__DavidKirner</dc:creator>
    <dc:date>2011-08-15T22:42:34Z</dc:date>
    <item>
      <title>IF statement to format/edit time</title>
      <link>https://community.esri.com/t5/data-management-questions/if-statement-to-format-edit-time/m-p/313792#M17962</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I am looking to populate a time filed in a dataset (Field calculator) with time increments resulting in every even 30 second intervals. The current format is HH:MM:SS Where any seconds value less than 30 would be rounded down to :00 and any seconds value greater than 30 would also round down to :30.&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I.e. I want column A to become Column B&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; A&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; B&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;6:40:34 a.m. 6:40:30 a.m.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;6:41:04 a.m. 6:41:00 a.m.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;6:41:34 a.m. 6:41:30 a.m.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;6:42:04 a.m. 6:42:00 a.m.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;6:42:34 a.m. 6:42:30 a.m.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;6:43:04 a.m. 6:43:00 a.m.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;6:44:04 a.m. 6:44:00 a.m.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;6:44:34 a.m. 6:44:30 a.m.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;6:45:04 a.m. 6:45:00 a.m.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I already have a time column, but the seconds poriton of the time is not in even 30 intervals.&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;How would i achieve this in field calculator?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Also I would like to know how to batch process these as well.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanx in advance!!&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 15 Aug 2011 22:42:34 GMT</pubDate>
      <guid>https://community.esri.com/t5/data-management-questions/if-statement-to-format-edit-time/m-p/313792#M17962</guid>
      <dc:creator>J__DavidKirner</dc:creator>
      <dc:date>2011-08-15T22:42:34Z</dc:date>
    </item>
    <item>
      <title>Re: IF statement to format/edit time</title>
      <link>https://community.esri.com/t5/data-management-questions/if-statement-to-format-edit-time/m-p/313793#M17963</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;If you use a cursor to read in the data you can convert the values into a Python datetime object.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;That is much easier to round off and then write it out to a date field again.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Note that you have to have a featureclass that handles datetime objects which does not include dBase and hence shapefiles.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Note that rounding down is easy, just truncate the minutes and milliseconds.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Rounding up is a bit trickier because the next minute may be a whole hour, that is where the datetime object makes it easy, we create a timedelta object of one minute that will do the tricky date arithmetic for us.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;In this case you want a floor function so no rounding is required.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Python: batteries included.&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;import datetime,math
exact = datetime.datetime.now()

newsecs = math.floor(exact.second/30.0)*30.0
newtime = exact.replace(second=newsecs,microsecond=0) 

print exact,newtime&lt;/PRE&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;2011-08-17 21:37:46.296000 2011-08-17 21:37:30
2011-08-17 21:37:56.562000 2011-08-17 21:37:30
2011-08-17 21:38:02.171000 2011-08-17 21:38:00
2011-08-17 21:39:35.484000 2011-08-17 21:39:30
&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;It would be possible to create a function that could be used in the field calculator. I don't recommend that. It is much easier to debug and add extra tests to use a cursor. What if the field is Null? In a cursor you can add more tests to trap unexpected data.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 14:58:03 GMT</pubDate>
      <guid>https://community.esri.com/t5/data-management-questions/if-statement-to-format-edit-time/m-p/313793#M17963</guid>
      <dc:creator>KimOllivier</dc:creator>
      <dc:date>2021-12-11T14:58:03Z</dc:date>
    </item>
  </channel>
</rss>

