diff --git a/examples/compiled/time_parse_utc.png b/examples/compiled/time_parse_utc.png
index f346b1a5c1..a5f60d2e42 100644
Binary files a/examples/compiled/time_parse_utc.png and b/examples/compiled/time_parse_utc.png differ
diff --git a/examples/compiled/time_parse_utc.svg b/examples/compiled/time_parse_utc.svg
index 9eaca33b15..b71c09eb59 100644
--- a/examples/compiled/time_parse_utc.svg
+++ b/examples/compiled/time_parse_utc.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/examples/compiled/time_parse_utc.vg.json b/examples/compiled/time_parse_utc.vg.json
index 87a0feffe6..3971c5a8f4 100644
--- a/examples/compiled/time_parse_utc.vg.json
+++ b/examples/compiled/time_parse_utc.vg.json
@@ -71,7 +71,7 @@
"format": {
"signal": "timeUnitSpecifier([\"hours\"], {\"year-month\":\"%b %Y \",\"year-month-date\":\"%b %d, %Y \"})"
},
- "formatType": "time",
+ "formatType": "utc",
"labelOverlap": true,
"zindex": 0
}
diff --git a/site/_includes/docs_toc.md b/site/_includes/docs_toc.md
index 35cfa70926..e658f7baf1 100644
--- a/site/_includes/docs_toc.md
+++ b/site/_includes/docs_toc.md
@@ -287,7 +287,6 @@
- [Nominal]({{site.baseurl}}/docs/type.html#nominal)
- [GeoJSON]({{site.baseurl}}/docs/type.html#geojson)
- [Value]({{site.baseurl}}/docs/value.html)
- - [Examples]({{site.baseurl}}/docs/value.html#examples)
- [Projection]({{site.baseurl}}/docs/projection.html)
- [Documentation Overview]({{site.baseurl}}/docs/projection.html#documentation-overview)
- [Projection Properties]({{site.baseurl}}/docs/projection.html#projection-properties)
@@ -330,7 +329,6 @@
- [Using Parameters]({{site.baseurl}}/docs/parameter.html#using-parameters)
- [Selection Configuration]({{site.baseurl}}/docs/parameter.html#config)
- [Value]({{site.baseurl}}/docs/value.html)
- - [Examples]({{site.baseurl}}/docs/value.html#examples)
- [Expr]({{site.baseurl}}/docs/parameter.html)
- [Documentation Overview]({{site.baseurl}}/docs/parameter.html#documentation-overview)
- [Defining a Parameter]({{site.baseurl}}/docs/parameter.html#defining-a-parameter)
diff --git a/src/compile/format.ts b/src/compile/format.ts
index 20f49f5103..bbc645a37b 100644
--- a/src/compile/format.ts
+++ b/src/compile/format.ts
@@ -160,7 +160,7 @@ export function guideFormatType(
return formatType;
}
if (isFieldOrDatumDefForTimeFormat(fieldOrDatumDef) && scaleType !== 'time' && scaleType !== 'utc') {
- return 'time';
+ return isFieldDef(fieldOrDatumDef) && normalizeTimeUnit(fieldOrDatumDef?.timeUnit)?.utc ? 'utc' : 'time';
}
return undefined;
}
diff --git a/test/compile/format.test.ts b/test/compile/format.test.ts
index 0b93dae8c5..8c935585a2 100644
--- a/test/compile/format.test.ts
+++ b/test/compile/format.test.ts
@@ -1,5 +1,5 @@
import {vgField} from '../../src/channeldef';
-import {formatSignalRef, numberFormat, timeFormatExpression} from '../../src/compile/format';
+import {formatSignalRef, guideFormatType, numberFormat, timeFormatExpression} from '../../src/compile/format';
import {defaultConfig} from '../../src/config';
import {NOMINAL, ORDINAL, QUANTITATIVE, TEMPORAL} from '../../src/type';
@@ -130,4 +130,17 @@ describe('Format', () => {
});
});
});
+
+ describe('guideFormatType()', () => {
+ it('should return existing format type', () => {
+ expect(guideFormatType('number', {field: ' foo', type: 'quantitative'}, 'ordinal')).toBe('number');
+ expect(guideFormatType('time', {field: ' foo', type: 'quantitative'}, 'ordinal')).toBe('time');
+ });
+
+ it('should return utc for utc time units', () => {
+ expect(
+ guideFormatType('', {field: ' foo', type: 'ordinal', timeUnit: {utc: true, unit: 'year'}}, 'ordinal')
+ ).toBe('utc');
+ });
+ });
});