@@ -518,8 +518,8 @@ pub mod ffi {
518
518
write : & mut diplomat_runtime:: DiplomatWrite ,
519
519
) -> Result < ( ) , DateTimeWriteError > {
520
520
let mut input = icu_datetime:: DateTimeInputUnchecked :: default ( ) ;
521
- let date = date. 0 . to_calendar ( self . 0 . calendar ( ) ) ;
522
- input. set_date_fields_unchecked ( date ) ; // calendar conversion on previous line
521
+ let date_in_calendar = date. 0 . to_calendar ( self . 0 . calendar ( ) ) ;
522
+ input. set_date_fields_unchecked ( date_in_calendar ) ; // calendar conversion on previous line
523
523
input. set_time_fields ( time. 0 ) ;
524
524
input. set_time_zone_id ( zone. id ) ;
525
525
if let Some ( offset) = zone. offset {
@@ -528,6 +528,12 @@ pub mod ffi {
528
528
if let Some ( zone_name_timestamp) = zone. zone_name_timestamp {
529
529
input. set_time_zone_name_timestamp ( zone_name_timestamp) ;
530
530
}
531
+ else {
532
+ input. set_time_zone_name_timestamp ( icu_time:: zone:: ZoneNameTimestamp :: from_date_time_iso ( & icu_time:: DateTime {
533
+ date : date. 0 ,
534
+ time : time. 0
535
+ } ) )
536
+ }
531
537
if let Some ( variant) = zone. variant {
532
538
input. set_time_zone_variant ( variant) ;
533
539
}
@@ -1012,8 +1018,8 @@ pub mod ffi {
1012
1018
write : & mut diplomat_runtime:: DiplomatWrite ,
1013
1019
) -> Result < ( ) , DateTimeWriteError > {
1014
1020
let mut input = icu_datetime:: DateTimeInputUnchecked :: default ( ) ;
1015
- let date = date. 0 . to_calendar ( Gregorian ) ;
1016
- input. set_date_fields_unchecked ( date ) ; // calendar conversion on previous line
1021
+ let date_in_calendar = date. 0 . to_calendar ( Gregorian ) ;
1022
+ input. set_date_fields_unchecked ( date_in_calendar ) ; // calendar conversion on previous line
1017
1023
input. set_time_fields ( time. 0 ) ;
1018
1024
input. set_time_zone_id ( zone. id ) ;
1019
1025
if let Some ( offset) = zone. offset {
@@ -1022,6 +1028,12 @@ pub mod ffi {
1022
1028
if let Some ( zone_name_timestamp) = zone. zone_name_timestamp {
1023
1029
input. set_time_zone_name_timestamp ( zone_name_timestamp) ;
1024
1030
}
1031
+ else {
1032
+ input. set_time_zone_name_timestamp ( icu_time:: zone:: ZoneNameTimestamp :: from_date_time_iso ( & icu_time:: DateTime {
1033
+ date : date. 0 ,
1034
+ time : time. 0
1035
+ } ) )
1036
+ }
1025
1037
if let Some ( variant) = zone. variant {
1026
1038
input. set_time_zone_variant ( variant) ;
1027
1039
}
0 commit comments