Timestamping in blockchains is based on the *block* in which an item is confirmed, not the time of creating the transaction. This timestamp is added by the node ("miner") that generated the block and verified by all other nodes as being reasonably close to their own timestamps (within the scale of a few minutes).
If you want to timestamp individual stream items, you would add this information as part of the stream item itself. Then when reading these timestamps within stream items could be verified against the block timestamps, to check they are reasonable, i.e. within a few minutes. Or you could use a smart filter (stream filter) to do this automatically, by comparing against the last block's timestamp via getlastblockinfo().time
Of course in this scenario a node could still fake the time a few minutes in either direction. For more strict timestamping, you would need to use one or more trusted timestamping services, and include signed attestations from those services regarding the time. These could also be included in stream items and verified using a stream filter using verifymessage.