https://github.com/JuliaLang/julia
Revision 317211a38947d1d72a7471186490fa9df4944201 authored by Andy Nowacki on 10 November 2022, 22:08:06 UTC, committed by GitHub on 10 November 2022, 22:08:06 UTC
When attempting to construct a `DateTime`, `Date` or `Time` from an
`AbstractString`, throw an `ArgumentError` if the string is empty.
Likewise, error when `parse`ing an empty string as one of these types,
and return `nothing` from `tryparse`.

This behavior differs from previously.  Before, `Date` and `Time` would
return default values of `Date(1)` and `Time(0)`, respectively, while
`DateTime` would error without a `format` argument.  With a `format`
argument, it would return `DateTime(1)`.  However, this appears not to
have been explicitly intended, but rather a consequence of the way
parsing was implemented; no tests for empty string parsing existed.

This addresses #28090 and #43883; see discussion therein.

Summary of changes:
- Check for empty string in `Base.parse(::DateTime)` and throw if so.
- Change documentation to mention this.
- Add a compat notice to the docs contrasting the old behavior.
1 parent e0ba28a
History
Tip revision: 317211a38947d1d72a7471186490fa9df4944201 authored by Andy Nowacki on 10 November 2022, 22:08:06 UTC
Dates: Error on construction/parsing with empty strings (#47117)
Tip revision: 317211a
File Mode Size
checksums
patches
tools
valgrind
.gitignore -rw-r--r-- 26 bytes
Makefile -rw-r--r-- 5.5 KB
blastrampoline.mk -rw-r--r-- 2.1 KB
blastrampoline.version -rw-r--r-- 196 bytes
clang.version -rw-r--r-- 123 bytes
csl.mk -rw-r--r-- 4.6 KB
csl.version -rw-r--r-- 57 bytes
curl.mk -rw-r--r-- 3.4 KB
curl.version -rw-r--r-- 96 bytes
dsfmt.mk -rw-r--r-- 2.2 KB
dsfmt.version -rw-r--r-- 76 bytes
gfortblas.alias -rw-r--r-- 706 bytes
gfortblas.c -rw-r--r-- 4.4 KB
gmp.mk -rw-r--r-- 3.2 KB
gmp.version -rw-r--r-- 70 bytes
libgit2.mk -rw-r--r-- 4.2 KB
libgit2.version -rw-r--r-- 429 bytes
libssh2.mk -rw-r--r-- 2.9 KB
libssh2.version -rw-r--r-- 167 bytes
libsuitesparse.mk -rw-r--r-- 5.0 KB
libsuitesparse.version -rw-r--r-- 101 bytes
libuv.mk -rw-r--r-- 1.8 KB
libuv.version -rw-r--r-- 154 bytes
libwhich.mk -rw-r--r-- 1.2 KB
libwhich.version -rw-r--r-- 78 bytes
lld.version -rw-r--r-- 60 bytes
llvm-options.mk -rw-r--r-- 564 bytes
llvm-tools.version -rw-r--r-- 182 bytes
llvm-ver.make -rw-r--r-- 595 bytes
llvm.mk -rw-r--r-- 10.8 KB
llvm.version -rw-r--r-- 161 bytes
llvmunwind.version -rw-r--r-- 95 bytes
mbedtls.mk -rw-r--r-- 3.4 KB
mbedtls.version -rw-r--r-- 83 bytes
mpfr.mk -rw-r--r-- 2.4 KB
mpfr.version -rw-r--r-- 313 bytes
nghttp2.mk -rw-r--r-- 2.0 KB
nghttp2.version -rw-r--r-- 102 bytes
objconv.mk -rw-r--r-- 1.0 KB
objconv.version -rw-r--r-- 264 bytes
openblas.mk -rw-r--r-- 8.3 KB
openblas.version -rw-r--r-- 227 bytes
openlibm.mk -rw-r--r-- 1.3 KB
openlibm.version -rw-r--r-- 163 bytes
p7zip.mk -rw-r--r-- 1.6 KB
p7zip.version -rw-r--r-- 76 bytes
patchelf.mk -rw-r--r-- 2.2 KB
patchelf.version -rw-r--r-- 112 bytes
pcre.mk -rw-r--r-- 2.1 KB
pcre.version -rw-r--r-- 74 bytes
unwind.mk -rw-r--r-- 7.5 KB
unwind.version -rw-r--r-- 104 bytes
utf8proc.mk -rw-r--r-- 1.5 KB
utf8proc.version -rw-r--r-- 78 bytes
zlib.mk -rw-r--r-- 1.4 KB
zlib.version -rw-r--r-- 164 bytes

back to top