/* This Source Code Form is subject to the terms of the Mozilla Public *License,v.2.0.IfacopyoftheMPLwasnotdistributedwiththis
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #ifndef intl_components_DateTimePatternGenerator_h_ #define intl_components_DateTimePatternGenerator_h_
/** *TheDateTimePatternGeneratoristhemachineryusedtoworkwithDateTime *patternmanipulation.Itisexpensivetocreateone,andsogenerallyitis *createdonceandthencached.Itmaybeneededtobepassedinasanargument *fordifferentmozilla::intlAPIs.
*/ class DateTimePatternGenerator final {
public: explicit DateTimePatternGenerator(UDateTimePatternGenerator* aGenerator)
: mGenerator(aGenerator) {
MOZ_ASSERT(aGenerator);
};
// Transfer ownership of the UDateTimePatternGenerator in the move // constructor.
DateTimePatternGenerator(DateTimePatternGenerator&& other) noexcept;
// Transfer ownership of the UEnumeration in the move assignment operator.
DateTimePatternGenerator& operator=(
DateTimePatternGenerator&& other) noexcept;
/** *Getaskeleton(astringwithunordereddatetimefields)fromapattern. *Forexample,both"MMM-dd"and"dd/MMM"producetheskeleton"MMMdd".
*/ template <typename B> static ICUResult GetSkeleton(Span<const char16_t> aPattern, B& aBuffer) { // At one time udatpg_getSkeleton required a UDateTimePatternGenerator*, but // now it is valid to pass in a nullptr. return FillBufferWithICUCall(
aBuffer, [&](UChar* target, int32_t length, UErrorCode* status) { return udatpg_getSkeleton(nullptr, aPattern.data(),
static_cast<int32_t>(aPattern.Length()),
target, length, status);
});
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.