Skip to content

Commit

Permalink
make toFormat(Z) and friends return a number for UTC
Browse files Browse the repository at this point in the history
  • Loading branch information
icambron committed Apr 21, 2018
1 parent 1193458 commit 7279ef7
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 3 deletions.
2 changes: 1 addition & 1 deletion src/datetime.js
Expand Up @@ -186,7 +186,7 @@ function parseDataToDateTime(parsed, parsedZone, opts) {
// helps handle the details
function toTechFormat(dt, format) {
return dt.isValid
? Formatter.create(Locale.create('en-US'), { forceSimple: true }).formatDateTimeFromString(
? Formatter.create(Locale.create('en-US'), { allowZ: true, forceSimple: true }).formatDateTimeFromString(
dt,
format
)
Expand Down
4 changes: 2 additions & 2 deletions src/impl/formatter.js
Expand Up @@ -208,10 +208,10 @@ export default class Formatter {
// offset
case 'Z':
// like +6
return formatOffset({ format: 'narrow', allowZ: true });
return formatOffset({ format: 'narrow', allowZ: this.opts.allowZ });
case 'ZZ':
// like +06:00
return formatOffset({ format: 'short', allowZ: true });
return formatOffset({ format: 'short', allowZ: this.opts.allowZ });
case 'ZZZ':
// like +0600
return formatOffset({ format: 'techie', allowZ: false });
Expand Down
8 changes: 8 additions & 0 deletions test/datetime/toFormat.test.js
Expand Up @@ -98,35 +98,43 @@ test("DateTime#toFormat('Z') returns the narrow offset", () => {
expect(dt.toUTC(390).toFormat('Z')).toBe('+6:30');
expect(dt.toUTC(-360).toFormat('Z')).toBe('-6');
expect(dt.toUTC(-390).toFormat('Z')).toBe('-6:30');
expect(dt.toUTC().toFormat('Z')).toBe('+0');
});

test("DateTime#toFormat('ZZ') returns the padded offset", () => {
expect(dt.toUTC(360).toFormat('ZZ')).toBe('+06:00');
expect(dt.toUTC(390).toFormat('ZZ')).toBe('+06:30');
expect(dt.toUTC(-360).toFormat('ZZ')).toBe('-06:00');
expect(dt.toUTC(-390).toFormat('ZZ')).toBe('-06:30');
expect(dt.toUTC().toFormat('ZZ')).toBe('+00:00');
});

test("DateTime#toFormat('ZZZ') returns a numerical offset", () => {
expect(dt.toUTC(360).toFormat('ZZZ')).toBe('+0600');
expect(dt.toUTC(390).toFormat('ZZZ')).toBe('+0630');
expect(dt.toUTC(-360).toFormat('ZZZ')).toBe('-0600');
expect(dt.toUTC(-390).toFormat('ZZZ')).toBe('-0630');
expect(dt.toUTC().toFormat('ZZZ')).toBe('+0000');
});

test("DateTime#toFormat('ZZZZ') returns the short offset name", () => {
const zoned = dt.setZone('America/Los_Angeles');
expect(zoned.toFormat('ZZZZ')).toBe('PDT');
expect(dt.toUTC().toFormat('ZZZZ')).toBe('UTC');
});

test("DateTime#toFormat('ZZZZZ') returns the full offset name", () => {
const zoned = dt.setZone('America/Los_Angeles');
expect(zoned.toFormat('ZZZZZ')).toBe('Pacific Daylight Time');
expect(dt.toUTC().toFormat('ZZZZZ')).toBe('UTC');
});

test("DateTime#toFormat('z') returns the zone name", () => {
const zoned = dt.setZone('America/Los_Angeles');
expect(zoned.toFormat('z')).toBe('America/Los_Angeles');

const utc = dt.toUTC();
expect(utc.toFormat('z')).toBe('UTC');
});

test("DateTime#toFormat('a') returns the meridiem", () => {
Expand Down

0 comments on commit 7279ef7

Please sign in to comment.