Repository: kubernetes
Issue: bug: No 'time' added when server-side-applying the same yaml as a 2nd field manager
Labels: kind/bug,sig/api-machinery,triage/accepted

### What happened?

We have a use case where two field managers co-own some of `.metadata.managedFields`. It is observed that the 'time' is missing after the 2nd field manager server-side-applied its configuration, when that applied configuration is the same with that of the 1st field manager.

An example of `.metadata.managedFields` which demonstrates what is missing:
```
- apiVersion: apps/v1
  fieldsType: FieldsV1
  fieldsV1:
    f:metadata:
      f:labels:
        f:app: {}
    f:spec:
      f:progressDeadlineSeconds: {}
      f:replicas: {}
      f:revisionHistoryLimit: {}
      f:selector: {}
      f:strategy:
        f:rollingUpdate:
          f:maxSurge: {}
          f:maxUnavailable: {}
        f:type: {}
      f:template:
        f:metadata:
          f:creationTimestamp: {}
          f:labels:
            f:app: {}
        f:spec:
          f:containers:
            k:{"name":"nginx"}:
              .: {}
              f:image: {}
              f:imagePullPolicy: {}
              f:name: {}
              f:resources: {}
              f:terminationMessagePath: {}
              f:terminationMessagePolicy: {}
          f:dnsPolicy: {}
          f:restartPolicy: {}
          f:schedulerName: {}
          f:securityContext: {}
          f:terminationGracePeriodSeconds: {}
  manager: jun-apply-again
  operation: Apply
- apiVersion: apps/v1
  fieldsType: FieldsV1
  fieldsV1:
    f:metadata:
      f:labels:
        f:app: {}
    f:spec:
      f:progressDeadlineSeconds: {}
      f:replicas: {}
      f:revisionHistoryLimit: {}
      f:selector: {}
      f:strategy:
        f:rollingUpdate:
          f:maxSurge: {}
          f:maxUnavailable: {}
        f:type: {}
      f:template:
        f:metadata:
          f:creationTimestamp: {}
          f:labels:
            f:app: {}
        f:spec:
          f:containers:
            k:{"name":"nginx"}:
              .: {}
              f:image: {}
              f:imagePullPolicy: {}
              f:name: {}
              f:resources: {}
              f:terminationMessagePath: {}
              f:terminationMessagePolicy: {}
          f:dnsPolicy: {}
          f:restartPolicy: {}
          f:schedulerName: {}
          f:securityContext: {}
          f:terminationGracePeriodSeconds: {}
  manager: jun
  operation: Apply
  time: "2024-10-01T21:53:28Z"
```
Field manager 'jun' has `"2024-10-01T21:53:28Z"` as the applied 'time', but field manager 'jun-apply-again' doesn't have any 'time'.

### What did you expect to happen?

Each item in the list of managed fields should consistently have a 'time' associated.

### How can we reproduce it (as minimally and precisely as possible)?

To help reproduce the bug, I documented the exact command lines and needed manifests [here](https://github.com/waltforme/random/blob/main/kubernetes-managedfields/apply_HTTP-PATCH.md).

For a little broader background, one can optionally read this [README.md](https://github.com/waltforme/random/blob/main/kubernetes-managedfields/README.md).

### Anything else we need to know?

_No response_

### Kubernetes version

I built the kube-apiserver from 7ee17ce9b7c2a22e63e2bbd79d48d3fe349a9386.
<details>

```console
$ kubectl version
WARNING: This version information is deprecated and will be replaced with the output from kubectl version --short.  Use --output=yaml|json to get the full version.
Client Version: version.Info{Major:"1", Minor:"26", GitVersion:"v1.26.1", GitCommit:"8f94681cd294aa8cfd3407b8191f6c70214973a4", GitTreeState:"clean", BuildDate:"2023-01-18T15:58:16Z", GoVersion:"go1.19.5", Compiler:"gc", Platform:"linux/arm64"}
Kustomize Version: v4.5.7
Server Version: version.Info{Major:"1", Minor:"32", GitVersion:"v0.0.0-master+$Format:%H$", GitCommit:"$Format:%H$", GitTreeState:"", BuildDate:"1970-01-01T00:00:00Z", GoVersion:"go1.23.0", Compiler:"gc", Platform:"linux/arm64"}
error: could not parse pre-release/metadata (-master+$Format:%H$) in version "v0.0.0-master+$Format:%H$"
```

</details>


### Cloud provider

N/A

### OS version

<details>

```console
# On Linux:
$ cat /etc/os-release
# paste output here
$ uname -a
# paste output here

# On Windows:
C:\> wmic os get Caption, Version, BuildNumber, OSArchitecture
# paste output here
```

</details>


### Install tools

<details>

</details>


### Container runtime (CRI) and version (if applicable)

<details>

</details>


### Related plugins (CNI, CSI, ...) and versions (if applicable)

<details>

</details>