title: trans_primitives are not generated to the datetime column
body: <p>I am creating a featuretools matrix, that is generated out of 5 dataframe entities and one cutoff_time table. When I use the ft.dfs() function, I use both <strong>agg_primitives</strong> and <strong>trans_primitives</strong>, however all the primitives in trans_primitives that relate to a datetime column do not generate any feature.</p>
  
  <p>The entity that includes the datetime column is called 'events'. The name of the column is 'event-timestamp'.</p>
  
  <p>Since my trans_primitives list includes other primitives that do generate features ("IS_NULL" works), I assume that the problem is not with how I use the trans_primitives as a whole, but only those that relate to time.</p>
  
  <p>Some things that may assist:</p>
  
  <ol>
  <li><p>I checked the dtype of the column 'event-timestamp' in 'events' and it is datetime64[ns].
  The same is with the 'cutoff_time' column in the cutoff table.</p></li>
  <li><p>Another detail is that some new features of 'event-timestamp' are generated by the <strong>agg_primitives</strong> (for example 'MIN(matcher.devices.TIME_SINCE_LAST(events.event-timestamp))'), so I guess it shows that the column itself is OK.</p></li>
  <li><p>I did some experiments with the es.entity_from_dataframe of 'events':</p>
  
  <ul>
  <li>Used the argument: time_index='event-timestamp'</li>
  <li>Used the argument: variable_types={'event-timestamp': vtypes.Datetime}</li>
  <li>Used both of the above and none of them</li>
  </ul></li>
  </ol>
  
  <p>Below is the functions that I am using: </p>
  
  <pre class="lang-py prettyprint-override"><code>def generate_feature_matrix(events, grns, contracts, om_table, matcher, customers):
      """
      The function takes a set of tables, creates featuretools entities and 
      relationships and then creates the final feature matrix"""
  
  
      ## Make empty entityset
      es = ft.EntitySet(id = 'contracts_customers')
  
  
      ## Create entities
      # events
      es.entity_from_dataframe(entity_id='events', dataframe=events, index='index', make_index=True,
                               time_index='event-timestamp') # tried also variable_types={'event-timestamp': vtypes.DatetimeTimeIndex} 
      # Devices
      es.entity_from_dataframe(entity_id='contracts', dataframe=contracts, index='contract')
      # Matcher
      es.entity_from_dataframe(entity_id='matcher', dataframe=matcher, index = 'contract', 
                               make_index=False)
      # os_table
      es.entity_from_dataframe(entity_id='om_table', dataframe=om_table, index='index', 
                               make_index=True)
      # Users
      es.entity_from_dataframe(entity_id='customers', dataframe=customers, index='customer')
  
  
  
  
      # Relationships (parent, child)
      r_devices_matcher = ft.Relationship(es['contracts']['contract'], es['matcher']['contract'])
      r_devices_events = ft.Relationship(es['contracts']['contract'], es['events']['contract'])
      r_devices_os = ft.Relationship(es['contracts']['contract'], es['om_table']['contract'])
      r_users_matcher = ft.Relationship(es['customers']['customer'], es['matcher']['customer'])
  
      es.add_relationships([r_devices_matcher, r_devices_events, r_users_matcher, r_devices_os])
  
      # Primitives
      agg_primitives=["num_unique", "skew", "mean", "count", "median", "sum",
                      "time_since_last", "mode", "min"] 
  
      trans_primitives=['month', 'weekday','hour', "time_since", "time_since_previous",
                        'is_null']
  
      # Generate the features
      feature_defs = ft.dfs(entityset=es, target_entity='customers', 
                                            cutoff_time = grns, 
                                            agg_primitives = agg_primitives,
                                            trans_primitives = trans_primitives,
                                            max_depth = 3, features_only = True,
                                            chunk_size = len(grns),  
                                            )
  
  
  
      return feature_defs
  </code></pre>
  
  <p>The entity relationship looks like that:</p>
  
  <pre class="lang-py prettyprint-override"><code>os
  Out[392]: 
  Entityset: contracts_customers
    Entities:
      events [Rows: 22, Columns: 3]
      contracts [Rows: 35, Columns: 2]
      matcher [Rows: 2663, Columns: 2]
      om_table [Rows: 965, Columns: 4]
      customers [Rows: 76, Columns: 2]
    Relationships:
      matcher.contract -&gt; contracts.contract
      events.contract -&gt; contracts.contract
      matcher.customer -&gt; customers.customer
      om_table.contract -&gt; contracts.contract
  </code></pre>
  
  <p>And the generated feature list:</p>
  
  <pre class="lang-py prettyprint-override"><code>new_features
  Out[393]: 
  [&lt;Feature: n_contracts&gt;,
   &lt;Feature: NUM_UNIQUE(matcher.contract)&gt;,
   &lt;Feature: MODE(matcher.contract)&gt;,
   &lt;Feature: IS_NULL(customer)&gt;,
   &lt;Feature: IS_NULL(n_contracts)&gt;,
   &lt;Feature: SKEW(matcher.contracts.n_event)&gt;,
   &lt;Feature: MEAN(matcher.contracts.n_event)&gt;,
   &lt;Feature: MEDIAN(matcher.contracts.n_event)&gt;,
   &lt;Feature: SUM(matcher.contracts.n_event)&gt;,
   &lt;Feature: MIN(matcher.contracts.n_event)&gt;,
   &lt;Feature: IS_NULL(NUM_UNIQUE(matcher.contract))&gt;,
   &lt;Feature: IS_NULL(MODE(matcher.contract))&gt;,
   &lt;Feature: NUM_UNIQUE(matcher.contracts.MODE(matcher.customer))&gt;,
   &lt;Feature: NUM_UNIQUE(matcher.contracts.MODE(om_table.om_family))&gt;,
   &lt;Feature: SKEW(matcher.contracts.COUNT(events))&gt;,
   &lt;Feature: SKEW(matcher.contracts.TIME_SINCE_LAST(events.event-timestamp))&gt;,
   &lt;Feature: SKEW(matcher.contracts.NUM_UNIQUE(matcher.customer))&gt;,
   &lt;Feature: SKEW(matcher.contracts.NUM_UNIQUE(om_table.om_family))&gt;,
   &lt;Feature: SKEW(matcher.contracts.SKEW(om_table.n_events))&gt;,
   &lt;Feature: SKEW(matcher.contracts.MEAN(om_table.n_events))&gt;,
   &lt;Feature: SKEW(matcher.contracts.COUNT(om_table))&gt;,
   &lt;Feature: SKEW(matcher.contracts.MEDIAN(om_table.n_events))&gt;,
   &lt;Feature: SKEW(matcher.contracts.SUM(om_table.n_events))&gt;,
   &lt;Feature: SKEW(matcher.contracts.MIN(om_table.n_events))&gt;,
   &lt;Feature: MEAN(matcher.contracts.COUNT(events))&gt;,
   &lt;Feature: MEAN(matcher.contracts.TIME_SINCE_LAST(events.event-timestamp))&gt;,
   &lt;Feature: MEAN(matcher.contracts.NUM_UNIQUE(matcher.customer))&gt;,
   &lt;Feature: MEAN(matcher.contracts.NUM_UNIQUE(om_table.om_family))&gt;,
   &lt;Feature: MEAN(matcher.contracts.SKEW(om_table.n_events))&gt;,
   &lt;Feature: MEAN(matcher.contracts.MEAN(om_table.n_events))&gt;,
   &lt;Feature: MEAN(matcher.contracts.COUNT(om_table))&gt;,
   &lt;Feature: MEAN(matcher.contracts.MEDIAN(om_table.n_events))&gt;,
   &lt;Feature: MEAN(matcher.contracts.SUM(om_table.n_events))&gt;,
   &lt;Feature: MEAN(matcher.contracts.MIN(om_table.n_events))&gt;,
   &lt;Feature: MEDIAN(matcher.contracts.COUNT(events))&gt;,
   &lt;Feature: MEDIAN(matcher.contracts.TIME_SINCE_LAST(events.event-timestamp))&gt;,
   &lt;Feature: MEDIAN(matcher.contracts.NUM_UNIQUE(matcher.customer))&gt;,
   &lt;Feature: MEDIAN(matcher.contracts.NUM_UNIQUE(om_table.om_family))&gt;,
   &lt;Feature: MEDIAN(matcher.contracts.SKEW(om_table.n_events))&gt;,
   &lt;Feature: MEDIAN(matcher.contracts.MEAN(om_table.n_events))&gt;,
   &lt;Feature: MEDIAN(matcher.contracts.COUNT(om_table))&gt;,
   &lt;Feature: MEDIAN(matcher.contracts.MEDIAN(om_table.n_events))&gt;,
   &lt;Feature: MEDIAN(matcher.contracts.SUM(om_table.n_events))&gt;,
   &lt;Feature: MEDIAN(matcher.contracts.MIN(om_table.n_events))&gt;,
   &lt;Feature: SUM(matcher.contracts.COUNT(events))&gt;,
   &lt;Feature: SUM(matcher.contracts.TIME_SINCE_LAST(events.event-timestamp))&gt;,
   &lt;Feature: SUM(matcher.contracts.NUM_UNIQUE(matcher.customer))&gt;,
   &lt;Feature: SUM(matcher.contracts.NUM_UNIQUE(om_table.om_family))&gt;,
   &lt;Feature: SUM(matcher.contracts.SKEW(om_table.n_events))&gt;,
   &lt;Feature: SUM(matcher.contracts.MEAN(om_table.n_events))&gt;,
   &lt;Feature: SUM(matcher.contracts.COUNT(om_table))&gt;,
   &lt;Feature: SUM(matcher.contracts.MEDIAN(om_table.n_events))&gt;,
   &lt;Feature: SUM(matcher.contracts.SUM(om_table.n_events))&gt;,
   &lt;Feature: SUM(matcher.contracts.MIN(om_table.n_events))&gt;,
   &lt;Feature: MODE(matcher.contracts.MODE(matcher.customer))&gt;,
   &lt;Feature: MODE(matcher.contracts.MODE(om_table.om_family))&gt;,
   &lt;Feature: MIN(matcher.contracts.COUNT(events))&gt;,
   &lt;Feature: MIN(matcher.contracts.TIME_SINCE_LAST(events.event-timestamp))&gt;,
   &lt;Feature: MIN(matcher.contracts.NUM_UNIQUE(matcher.customer))&gt;,
   &lt;Feature: MIN(matcher.contracts.NUM_UNIQUE(om_table.om_family))&gt;,
   &lt;Feature: MIN(matcher.contracts.SKEW(om_table.n_events))&gt;,
   &lt;Feature: MIN(matcher.contracts.MEAN(om_table.n_events))&gt;,
   &lt;Feature: MIN(matcher.contracts.COUNT(om_table))&gt;,
   &lt;Feature: MIN(matcher.contracts.MEDIAN(om_table.n_events))&gt;,
   &lt;Feature: MIN(matcher.contracts.SUM(om_table.n_events))&gt;,
   &lt;Feature: MIN(matcher.contracts.MIN(om_table.n_events))&gt;,
   &lt;Feature: IS_NULL(SKEW(matcher.contracts.n_event))&gt;,
   &lt;Feature: IS_NULL(MEAN(matcher.contracts.n_event))&gt;,
   &lt;Feature: IS_NULL(MEDIAN(matcher.contracts.n_event))&gt;,
   &lt;Feature: IS_NULL(SUM(matcher.contracts.n_event))&gt;,
   &lt;Feature: IS_NULL(MIN(matcher.contracts.n_event))&gt;]
  </code></pre>
  
  <p>I expect to get new features that yield from <strong>all</strong> the trans_primitives list above.</p>