aboutsummaryrefslogtreecommitdiffstats
path: root/adenosine-cli/src/lib.rs
diff options
context:
space:
mode:
Diffstat (limited to 'adenosine-cli/src/lib.rs')
-rw-r--r--adenosine-cli/src/lib.rs18
1 files changed, 11 insertions, 7 deletions
diff --git a/adenosine-cli/src/lib.rs b/adenosine-cli/src/lib.rs
index 19ba060..e232667 100644
--- a/adenosine-cli/src/lib.rs
+++ b/adenosine-cli/src/lib.rs
@@ -316,24 +316,28 @@ pub fn value_from_fields(fields: Vec<ArgField>) -> Value {
Value::Object(serde_json::map::Map::from_iter(map.into_iter()))
}
-/// Helper to generate the current timestamp as right now, UTC, formatted as a string.
+/// Helper to generate the current timestamp as right now, UTC, formatted as an RFC 3339 string.
///
-/// Returns something like "2022-11-22T09:21:15Z"
+/// Currently, bluesky PDS expects millisecond precision, so we use that.
+///
+/// Returns something like "2022-11-22T09:21:15.640Z"
pub fn created_at_now() -> String {
- let now = time::OffsetDateTime::now_utc()
- .replace_microsecond(0)
- .unwrap();
+ let now = time::OffsetDateTime::now_utc();
+ // remove microsecond precision, but retain millisecond precision
+ let ms = now.millisecond();
+ let now = now.replace_microsecond(0).unwrap();
+ let now = now.replace_millisecond(ms).unwrap();
now.format(&time::format_description::well_known::Rfc3339)
.unwrap()
}
#[test]
fn test_created_at_now() {
- // eg: 2022-11-22T09:20:44Z
+ // eg: 2022-11-22T09:20:44.123Z
let ts = created_at_now();
println!("{}", ts);
assert_eq!(&ts[4..5], "-");
assert_eq!(&ts[7..8], "-");
assert_eq!(&ts[10..11], "T");
- assert_eq!(&ts[19..20], "Z");
+ assert_eq!(&ts[23..24], "Z");
}