5#include <system/globalization/calendar.h>
6#include <system/iformatprovider.h>
7#include <system/icloneable.h>
8#include <system/nullable.h>
9#include <system/globalization/details/date_time_format_data_ptr.h>
10#include <system/globalization/details/date_time_format_flags.h>
11#include <system/globalization/details/culture_data_ptr.h>
12#include <system/details/spin_lock.h>
13#include <system/details/lazy.h>
15namespace System {
namespace Globalization {
18 class DateTimeFormatInfoReader;
19 namespace DateTimeTokenization {
class Tokenizer; }
39 friend class Details::DateTimeTokenization::Tokenizer;
62 ASPOSECPP_SHARED_API
bool get_IsReadOnly() const;
66 ASPOSECPP_SHARED_API
String get_ShortDatePattern() const;
69 ASPOSECPP_SHARED_API
void set_ShortDatePattern(const
String& value);
73 ASPOSECPP_SHARED_API
String get_ShortTimePattern() const;
76 ASPOSECPP_SHARED_API
void set_ShortTimePattern(const
String& value);
80 ASPOSECPP_SHARED_API
String get_LongDatePattern() const;
83 ASPOSECPP_SHARED_API
void set_LongDatePattern(const
String& value);
87 ASPOSECPP_SHARED_API
String get_LongTimePattern() const;
90 ASPOSECPP_SHARED_API
void set_LongTimePattern(const
String& value);
94 ASPOSECPP_SHARED_API
String get_DateSeparator() const;
97 ASPOSECPP_SHARED_API
void set_DateSeparator(const
String& value);
101 ASPOSECPP_SHARED_API
String get_TimeSeparator() const;
104 ASPOSECPP_SHARED_API
void set_TimeSeparator(const
String& value);
108 ASPOSECPP_SHARED_API
String get_PMDesignator() const;
111 ASPOSECPP_SHARED_API
void set_PMDesignator(const
String& value);
115 ASPOSECPP_SHARED_API
String get_AMDesignator() const;
118 ASPOSECPP_SHARED_API
void set_AMDesignator(const
String& value);
125 ASPOSECPP_SHARED_API
void set_AbbreviatedDayNames(const
ArrayPtr<
String>& value);
132 ASPOSECPP_SHARED_API
void set_AbbreviatedMonthGenitiveNames(const
ArrayPtr<
String>& value);
139 ASPOSECPP_SHARED_API
void set_AbbreviatedMonthNames(const
ArrayPtr<
String>& value);
164 ASPOSECPP_SHARED_API
DayOfWeek get_FirstDayOfWeek() const;
167 ASPOSECPP_SHARED_API
void set_FirstDayOfWeek(
DayOfWeek value);
171 ASPOSECPP_SHARED_API
String get_FullDateTimePattern() const;
174 ASPOSECPP_SHARED_API
void set_FullDateTimePattern(const
String& value);
178 ASPOSECPP_SHARED_API
String get_MonthDayPattern() const;
181 ASPOSECPP_SHARED_API
void set_MonthDayPattern(const
String& value);
199 ASPOSECPP_SHARED_API
String get_RFC1123Pattern() const;
210 ASPOSECPP_SHARED_API
String get_SortableDateTimePattern() const;
214 ASPOSECPP_SHARED_API
String get_UniversalSortableDateTimePattern() const;
218 ASPOSECPP_SHARED_API
String get_YearMonthPattern() const;
221 ASPOSECPP_SHARED_API
void set_YearMonthPattern(const
String& value);
231 ASPOSECPP_SHARED_API
String GetAbbreviatedEraName(
int era) const;
236 ASPOSECPP_SHARED_API
String GetAbbreviatedMonthName(
int month) const;
246 ASPOSECPP_SHARED_API
int GetEra(const
String& era_name) const;
251 ASPOSECPP_SHARED_API
String GetEraName(
int era) const;
256 ASPOSECPP_SHARED_API
String GetMonthName(
int month) const;
261 ASPOSECPP_SHARED_API
String GetMonthGenitiveName(
int month) const;
266 ASPOSECPP_SHARED_API
String GetLeapYearMonthName(
int month) const;
270 ASPOSECPP_SHARED_API
String get_NativeCalendarName() const;
278 ASPOSECPP_SHARED_API
ArrayPtr<
String> GetAllDateTimePatterns(
char16_t format) const;
281 ASPOSECPP_SHARED_API
void SetAllDateTimePatterns(const
ArrayPtr<
String>& patterns,
char16_t format);
309 friend class Details::DateTimeFormatInfoReader;
311 using Lock =
System::Details::OptionalSpinLock;
312 using LockContext = std::lock_guard<Lock>;
314 using Tokenizer = Details::DateTimeTokenization::Tokenizer;
317 const
bool m_is_read_only;
319 const Details::CultureDataPtr m_culture_data;
321 Details::DateTimeFormatDataPtr m_data;
325 mutable Lock m_lockable;
327 const
String m_culture_name;
330 mutable
System::Details::Lazy<std::shared_ptr<Tokenizer>> m_tokenizer;
341 mutable
String m_am_designator;
343 mutable
String m_date_separator;
349 mutable
String m_full_date_time_pattern;
351 mutable
String m_long_date_pattern;
355 mutable
String m_long_time_pattern;
359 mutable
String m_month_day_pattern;
365 mutable
String m_pm_designator;
367 mutable
String m_short_date_pattern;
373 mutable
String m_short_time_pattern;
377 mutable
String m_time_separator;
381 mutable
String m_year_month_pattern;
396 mutable
String m_native_calendar_name;
398 mutable
String m_decimal_separator;
400 mutable
Nullable<Details::DateTimeFormatFlags> m_format_flags;
405 mutable
String m_general_long_time_pattern;
407 mutable
String m_general_short_time_pattern;
409 mutable
String m_date_time_offset_pattern;
412 static const
String RFC1123Pattern;
413 static const
String SortablePattern;
414 static const
String UniversalSortablePattern;
415 static const
String RoundtripPattern;
416 static const
String RoundtripUnfixedPattern;
417 static const
String ISO8601Pattern;
420 static const
String StandardFormats;
424 bool is_read_only = false,
bool is_preload_all_data = false);
426 CODEPORTING_ARGS(const
DateTimeFormatInfo ©,
bool is_read_only = false,
bool is_preload_all_data = false),
427 CODEPORTING_ARGS(copy, is_read_only, is_preload_all_data)
436 bool is_read_only = false,
bool is_preload_all_data = false);
438 CODEPORTING_ARGS(const Details::CultureDataPtr& culture_data, const
CalendarPtr& calendar,
bool is_read_only = false,
bool is_preload_all_data = false),
439 CODEPORTING_ARGS(culture_data, calendar, is_read_only, is_preload_all_data)
443 void PreloadAllData();
445 void VerifyWritable() const;
447 Lock& Lockable()
const {
return m_lockable; }
449 Details::DateTimeFormatData& Data()
const;
451 void OnChangeProperty(
const LockContext&,
const char16_t* property_name);
453 const Tokenizer& GetTokenizer(
const Details::DateTimeFormatInfoReader& dtfi_reader)
const;
455 void ResetTokenizer(
const LockContext&);
458 const String& LongTimePattern(
const LockContext&)
const;
459 const String& MonthDayPattern(
const LockContext&)
const;
460 const String& PMDesignator(
const LockContext&)
const;
461 const String& ShortDatePattern(
const LockContext&)
const;
462 const String& ShortTimePattern(
const LockContext&)
const;
463 const String& TimeSeparator(
const LockContext&)
const;
464 const String& YearMonthPattern(
const LockContext&)
const;
471 const String& LongDatePattern(
const LockContext&)
const;
472 const String& FullDateTimePattern(
const LockContext&)
const;
473 DayOfWeek FirstDayOfWeek(
const LockContext&)
const;
474 const ArrayPtr<String>& AbbreviatedMonthGenitiveNames(
const LockContext&)
const;
476 const String& AMDesignator(
const LockContext&)
const;
478 const String& DateSeparator(
const LockContext&)
const;
488 const ArrayPtr<String>& AbbreviatedEnglishEraNames(
const LockContext&)
const;
489 const String& NativeCalendarName(
const LockContext&)
const;
490 const String& DecimalSeparator(
const LockContext&)
const;
492 const String& CultureName(
const LockContext&)
const;
494 const String& GeneralLongTimePattern(
const LockContext&)
const;
495 const String& GeneralShortTimePattern(
const LockContext&)
const;
496 const String& DateTimeOffsetPattern(
const LockContext&)
const;
504 ArrayPtr<String> AllDateTimePatterns(
char16_t format,
const LockContext&)
const;
506 const String& GetAbbreviatedDayName(
DayOfWeek day_of_week,
const LockContext&)
const;
507 const String& GetAbbreviatedEraName(
int era,
const LockContext&)
const;
508 const String& GetAbbreviatedMonthName(
int month,
const LockContext&)
const;
509 const String& GetDayName(
DayOfWeek day_of_week,
const LockContext&)
const;
510 int GetEra(
const String& era_name,
const LockContext&)
const;
511 const String& GetEraName(
int era,
const LockContext&)
const;
512 const String& GetMonthName(
int month,
const LockContext&)
const;
513 const String& GetMonthGenitiveName(
int month,
const LockContext&)
const;
514 const String& GetLeapYearMonthName(
int month,
const LockContext&)
const;
515 const String& GetShortestDayName(
DayOfWeek day_of_week,
const LockContext&)
const;
Calendar which defines how the dates are handled, calculated, formatted, etc. Setter operations are o...
Definition: calendar.h:38
Collection of culture-specific values and algorithms. Setter operations are only enabled on non-read-...
Definition: culture_info.h:32
Defies a method that enables object cloning - creating a copy of an object. Objects of this class sho...
Definition: icloneable.h:16
Forward declaration.
Definition: nullable.h:74
Base class that enables using methods available for System.Object class in C#. All non-trivial classe...
Definition: object.h:62
Pointer class to wrap types being allocated on heap. Use it to manage memory for classes inheriting O...
Definition: smart_ptr.h:180
String class used across the library. Is a substitute for C# System.String when translating code....
Definition: string.h:122
Represents a particular type and provides information about it.
Definition: type_info.h:109
DateTimeFormatFlags
Bit flags, used in parsing/formatting.
Definition: date_time_format_flags.h:11
SharedPtr< DateTimeFormatInfo > DateTimeFormatInfoPtr
DateTimeFormatInfo info pointer.
Definition: date_time_format_info.h:24
CalendarWeekRule
How to determine first week of the year.
Definition: calendar_week_rule.h:11
Definition: db_command.h:9
DayOfWeek
Enumeration that represents a day of week.
Definition: day_of_week.h:11