code: public void setDateLastModified(CmsDbContext dbc, CmsResource resource, long dateLastModified)
      throws CmsDataAccessException {
  
          // modify the last modification date
          resource.setDateLastModified(dateLastModified);
          if (resource.getState().isUnchanged()) {
              resource.setState(CmsResource.STATE_CHANGED);
          } else if (resource.getState().isNew() && (resource.getSiblingCount() > 1)) {
              // in case of new resources with siblings make sure the state is correct
              resource.setState(CmsResource.STATE_CHANGED);
          }
          resource.setUserLastModified(dbc.currentUser().getId());
          getVfsDriver(dbc).writeResourceState(dbc, dbc.currentProject(), resource, UPDATE_RESOURCE, false);
  
          log(
              dbc,
              new CmsLogEntry(
                  dbc,
                  resource.getStructureId(),
                  CmsLogEntryType.RESOURCE_TOUCHED,
                  new String[] {resource.getRootPath()}),
              false);
  
          // clear the cache
          m_monitor.clearResourceCache();
  
          // fire the event
          Map<String, Object> data = new HashMap<String, Object>(2);
          data.put(I_CmsEventListener.KEY_RESOURCE, resource);
          data.put(I_CmsEventListener.KEY_CHANGE, new Integer(CHANGED_LASTMODIFIED));
          OpenCms.fireCmsEvent(new CmsEvent(I_CmsEventListener.EVENT_RESOURCE_MODIFIED, data));
      }
docs: Changes the "last modified" timestamp of a resource.<p>
  
  @param dbc the current database context
  @param resource the resource to touch
  @param dateLastModified the new last modified date of the resource
  
  @throws CmsDataAccessException if something goes wrong
  
  @see CmsObject#setDateLastModified(String, long, boolean)
  @see I_CmsResourceType#setDateLastModified(CmsObject, CmsSecurityManager, CmsResource, long, boolean)