Repository: flutter
Issue: Text does not draw correctly based on text direction
Labels: a: text input,framework,f: material design,a: internationalization,a: typography,has reproducible steps,found in release: 2.1,team-design,triaged-design

I was create the flutter application to format the date time and the text was rendered incorrectly. The text formatted correctly but it rendered wrongly. 

## Steps to Reproduce

1. Run the sample with below code
2. Set the locale as 'en' and change the directionality text direction as rtl(formatted texts are 06 PM, PM 06 but rendered PM 06, PM 06)
3. See both the different formatted text(english) rendered like same.
4. again change the locale as 'he' and change the directionality text direction as ltr
5. See both the different formatted text(hebrew) rendered like same.

<details>
<summary>code sample</summary>

```dart
void main() {
  return runApp(LocalizationSupport());
}

class LocalizationSupport extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      localizationsDelegates: [
        GlobalMaterialLocalizations.delegate,
        GlobalWidgetsLocalizations.delegate,
      ],
      supportedLocales: [
        const Locale('en'),
        const Locale('zh'),
        const Locale('ru'),
        const Locale('fr', 'BE'),
        const Locale('fr', 'CA'),
        const Locale('ja'),
        const Locale('de'),
        const Locale('hi'),
        const Locale('ar'),
        const Locale('he'),
      ],
      locale: const Locale('en'),
      debugShowCheckedModeBanner: false,
      home: StringLocale(),
    );
  }
}
class StringLocale extends StatefulWidget {
  @override
  State<StatefulWidget> createState() => StringLocaleState();
}
class StringLocaleState extends State<StringLocale> {
  @override
  void initState() {
    super.initState();
  }

  late String _locale;
  @override
  void didChangeDependencies() {
    _locale = Localizations.localeOf(context).toString();
    super.didChangeDependencies();
  }

  @override
  Widget build(BuildContext context) {
    String data = DateFormat('hh a', _locale)
        .format(DateTime.now())
        .toString();
    print(data);

    String data1 = DateFormat('a hh', _locale)
        .format(DateTime.now())
        .toString();
    print(data1);

    if(data == data1){
      print('Same');
    }

    return Scaffold(
      body:
      Directionality(textDirection: TextDirection.rtl,
          child: SafeArea(child: Column(
        children: <Widget>[
          Expanded(
            child: Container(
          alignment: Alignment.center,
              height: double.infinity,
              width: double.infinity,
              child: Text(data),
      )
            ),Expanded(
              child: Container(
                alignment: Alignment.center,
                height: double.infinity,
                width: double.infinity,
                child: Text(data1),
              )
          )
      ]
          ),
      ),
    ));
  }
}

```
</details>

**Expected results:** 

- Text will rendered correctly based on direction

**Actual results:** 

- Text will not rendered correctly based on direction

**Issue Replication Images:**

**In en locale on RTL direction:**

![Screen Shot 2021-03-23 at 6 06 30 PM](https://user-images.githubusercontent.com/44917578/112148447-e9c93400-8c03-11eb-9e2b-596d693e1195.png)

**In he locale on LTR direction:**

![Screen Shot 2021-03-23 at 6 06 07 PM](https://user-images.githubusercontent.com/44917578/112148530-01082180-8c04-11eb-9b5c-63a1302c2197.png)

<details>
  <summary>Flutter doctor</summary>

```
[✓] Flutter (Channel beta, 2.0.1, on Mac OS X 10.15.3 19D76 darwin-x64, locale en-US)
[!]Android toolchain - develop for Android devices (Android SDK version 29.0.3)
    ✗ Android license status unknown.
      Run `flutter doctor --android-licenses` to accept the SDK licenses.
      See https://flutter.dev/docs/get-started/install/macos#android-setup for more details.
[!] Xcode - develop for iOS and macOS
    ! Xcode 11.3.1 out of date (12.0.1 is recommended).
      Download the latest version or update via the Mac App Store.
    ✗ Xcode requires additional components to be installed in order to run.
      Launch Xcode and install additional required components when prompted or run:
        sudo xcodebuild -runFirstLaunch
    ! CocoaPods 1.9.3 out of date (1.10.0 is recommended).
        CocoaPods is used to retrieve the iOS and macOS platform side's plugin code that responds to your plugin usage on the Dart side.
        Without CocoaPods, plugins will not work on iOS or macOS.
        For more info, see https://flutter.dev/platform-plugins
      To upgrade see https://guides.cocoapods.org/using/getting-started.html#installation for instructions.
[✓] Chrome - develop for the web
[✓] Android Studio (version 3.6)
[✓] VS Code (version 1.52.0)
[✓] Connected device (2 available)
```

<details>